base64命令-编码解码
Base64 是一种使用 64 个可打印的字符来表示二进制数据的方法,base64 中仅且包括字母 A-Za-z0-9+/ 共64个字符
由来
有些网络传送渠道不支持所有字节,比如邮件中的图像内容不可能全部都是可见字符。最好的解决办法就是在不改变传统协议的情况下,利用一种扩展方式来支持二进制文件的传送,把不可打印的字符用可打印字符来表示。Base64就是一种基于64个可打印字符来表示二进制数据的方法。
原理
Base64 索引中,64个字符使用 6 bit 位就可以全部表示,一个字节有 8 个bit位,所以在 Base64 编码中,使用3个传统字节(8bit位) 由4个 Base64 字符来表示,保证有效位数一致。
Base64按照字符串长度,每3个 8 bit 组成一组,正对每组,获取每个字符的 ASCII 编码
将 [[ASCII]] 码转成 8bit 的二进制,得到 3*8=24 bit 的字节
将 24 bit 划分为 4 个 6bit 的字节,每个 6 bit 的字节前填两个高位0,得到4个 8bit 的字节
将4个 8bit 字节转化成10进制,对照 Base64编码表,得到对应编码后的字符。
常用方式
# 编码
echo "str" | base64
# 对文件内容进行编码
base64 filename
# 解码
echo "c3RyCg==" | base64 -d
常见格式文本的Base64开头
ey 开头是字符串 {" 开头的内容的 base64 ,解码后大概率是 JSON
aHR0c 开头是 http 的 base64 ,解码后大概率是 URL 网址
PE 、PF 、PG 、PH 开头的 base64 ,解码后有可能是 xml 或者 html 文本
数字 5 或者数字 6 开头的 base64 字符串,解码后有可能是汉字内容
编码串里面 M N D 重复很多的,是数字内容,也可以考虑是 base64
最后更新于