Linux下base64编码与解码
base64编解码在开发运维工作中应用较多,特别是在如今越来越强调安全的背景下,经常会要求对密码或者某些Token之类的信息进行base64加密(或者说编码),比如近期nacos就因为安全考虑在最新版本取消了nacos.core.auth.plugin.nacos.token.secret.key的默认值,自定义该secret.key值时官方建议使用base64编码(官网原文:自定义密钥时,推荐将配置项设置为Base64编码的字符串,且原始密钥长度不得低于32字符。),官网截图:

此时往往会考虑借助互联网上的在线base64编解码服务(如https://base64.us/、https://www.toolhelper.cn/EncodeDecode/Base64EncodeDecode、https://c.runoob.com/front-end/693/),其实直接在Linux系统上就可以完成此项工作。

典型用法:
base64编码
echo '待编码的字符串' |base64
echo '待编码的字符串' |base64 -w 64 ##这是指定输出编码信息首行位数为64位
实例:

base64解码:
echo '待解码的字符串' |base64 -d
实例:

base64编解码时字符串不带单引号也是可以的:

需要注意的是,Linux服务器上base64编码的输出可能跟网页工具(在线base64编解码工具)存在差异,就是末尾一位可能不一样。

二者要保持一致的话,需要在Linux服务器上使用base64命令编码时echo加上-n参数。


base64命令用法:
base64 --h
用法:base64 [选项]... [文件]
使用 Base64 编码/解码文件或标准输入输出。
如果没有指定文件,或者文件为"-",则从标准输入读取。
必选参数对长短选项同时适用。
-d, --decode 解码数据
-i, --ignore-garbag 解码时忽略非字母字符
-w, --wrap=字符数 在指定的字符数后自动换行(默认为76),0 为禁用自动换行
--help 显示此帮助信息并退出
--version 显示版本信息并退出
数据以 RFC 4648 规定的 base64 字母格式进行编码。
解码时,输入数据(编码流)可能包含一些非有效 base64 字符以及换行符。
可以尝试用 --ignore-garbage 选项来绕过编码流中的无效字符。
GNU coreutils 在线帮助:https://www.gnu.org/software/coreutils/
请向 http://translationproject.org/team/zh_CN.html 报告任何翻译错误
完整文档 https://www.gnu.org/software/coreutils/base64
或者在本地使用:info '(coreutils) base64 invocation'
浙公网安备 33010602011771号