Basenc:将数据转换为可打印数据
basenc将从文件或标准输入读取的数据转换为(或从中转换为)各种常见的编码形式。编码形式使用可打印的ASCII字符来表示二进制数据。
使用方法:
basenc encoding [option]… [file] basenc encoding --decode [option]… [file]
编码参数是必需的。如果省略文件,则basenc将从标准输入读取。此命令的-w/--wrap,-i/--ignore-garbage,-d/--decode选项与base64命令完全相同。请参阅base64:将数据转换为可打印数据。
支持的编码包括:
'--base64'
转换为(或使用-d/--decode从中解码)base64形式。该格式符合RFC 4648#4。相当于base64命令。
'--base64url'
转换为(或使用-d/--decode从中解码)文件和URL安全的base64形式(使用'_'和'-'代替'+'和'/')。该格式符合RFC 4648#5。
'--base32'
转换为(或使用-d/--decode从中解码)base32形式。编码数据使用'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567='字符。该格式符合RFC 4648#6。相当于base32命令。
'--base32hex'
转换为(或使用-d/--decode从中解码)扩展十六进制字母表的base32形式。编码数据使用'0123456789ABCDEFGHIJKLMNOPQRSTUV='字符。该格式符合RFC 4648#7。
'--base16'
转换为(或使用-d/--decode从中解码)base16(十六进制)形式。编码数据使用'0123456789ABCDEF'字符。该格式符合RFC 4648#8。
'--base2lsbf'
转换为(或使用-d/--decode从中解码)二进制字符串形式('0'和'1'),最低有效位位于每个字节的最前面。
'--base2msbf'
转换为(或使用-d/--decode从中解码)二进制字符串形式('0'和'1'),最高有效位位于每个字节的最前面。
'--z85'
转换为(或使用-d/--decode从中解码)Z85形式(一种修改后的Ascii85形式)。编码数据使用'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU VWXYZ.-:+=^!/*?&<>()[]{}@%$#'字符。该格式符合ZeroMQ规范:32/Z85。
使用--z85进行编码时,输入长度必须是4的倍数;使用--z85进行解码时,输入长度必须是5的倍数。
编码/解码示例
$ printf '\376\117\202' | basenc --base64 /k+C $ printf '\376\117\202' | basenc --base64url _k-C $ printf '\376\117\202' | basenc --base32 7ZHYE=== $ printf '\376\117\202' | basenc --base32hex VP7O4=== $ printf '\376\117\202' | basenc --base16 FE4F82 $ printf '\376\117\202' | basenc --base2lsbf 011111111111001001000001 $ printf '\376\117\202' | basenc --base2msbf 111111100100111110000010 $ printf '\376\117\202\000' | basenc --z85 @.FaC $ printf 01010100 | basenc --base2msbf --decode T $ printf 01010100 | basenc --base2lsbf --decode *