base64: 编码或解码文件、标准输入到标准输出。base64编码之后的字符包括大小写字母各26个,加上10个数字,和加号「+」,斜杠「/」,一共64个字符,等号「=」用来补位,根据RFC 822规定,每76个字符,还需要加上一个回车换行。
转换方式:将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。数据不足3byte的话,缓冲区剩下的bit用0补足。然后,每次取出6(2的六次方 = 64)个bit,按照其值选择ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/中的字符作为编码后的输出。不断进行,直到全部输入数据转换完成,如果原字符串byte个数对3取余等于1,1byte转成8bit,24bit中其他位补0,转换时,能取出两个带数据6bit,剩余两个6bit转换时用两个=代替,如果原字符串byte个数对3取余等于2,2byte转成16bit,24bit中其它位补0,转换时,能取出三个带数据6bit,剩余一个6bit转换时用一个=代替,这样做是为了在还原时保证原数据的完整性。解码的流程和编码的流程正好相反。
具体参数如下:
-d, --decode :decode data,解码数据
-i, --ignore-garbage :when decoding, ignore non-alphabet characters
-w, --wrap=COLS:wrap encoded lines after COLS character (default 76). Use 0 to disable line wrapping
参数中如果没有文件或为-,表示从标准输入中读取数据
示例1:
转base64:echo "abc"|base64
解base64:echo ""|base64 -d
示例2(从标准输入接收数据):
转base64:输入base64敲回车,进入输入页面,输入待转换字符按CTRL+D结束输入,并将转换结果输出到标准输出。
解base64:输入base64 -d敲回车,进入输入页面,输入待解码字符串按CTRL+D结束输入,并将解码结果输出到标准输出。
示例3:
将文件的内容作为输入进行base64编码:base64 FILE_NAME
将文件的内容作为输入进行base64解码:base64 -d FILE_NAME
当然也可以将输出结果重定向到到文件中。