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
*