Linux下base64编码与解码

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

image-20230807093010790

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

image-20230807093042464

典型用法:

base64编码

echo '待编码的字符串' |base64

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

实例:

image-20230807093110285

base64解码:

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

实例:

image-20230807093136186

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

image-20230807093159132

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

image-20230807093235167

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

image-20230807093301238

image-20230807093315043

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'

posted @ 2023-08-07 09:34  寻梦99  阅读(3328)  评论(0)    收藏  举报