Base64原理简介
Base64是一种基于64个可打印字符来表示二进制数据的表示方法,严格来讲并不是加密方法,仅仅是表示方法。由于每6bit为一个单元。三个字节有24个bit,对应于4个Base64单元
这么说可能稍微有点抽象,举个例子就明白了,比如 “Man” 这个单词由3个字节,也就是24bit组成,按我们前面说的如果用Base64编码的话,由4个Base64单元组成。具体可以看下面的图
所以”Man”这个单词用Base64编码的结果为”TWFu”
但是我们举得这个例子有点特殊,“Man”正好有3个字节,24bit正好转成4个Base64, 如果转码的数据不是3的倍数。
最后会多长1个或2个字节,那么可以使用下面的方法处理:先使用0字节值在末尾补足,使其能够被3整除,然后再进行base64的编码。在编码后的base64文本后加上一个或两个‘=’号,代表补足的字节数。也就是说,当最后剩余一个八位字节(一个byte)时,最后一个6位的base64字节块有四位是0值,最后附加上两个等号;如果最后剩余两个八位字节(2个byte)时,最后一个6位的base字节块有两位是0值,最后附加一个等号。
编码
- 在终端命令行中编字符串
1 |
|
注:在Ubuntu上使用 echo “hello” | base64 时或出现多编码字符的情况,这个是因为UTF-8编码的原因
从指定的文件file中读取数据,编码为base64字符串输出。
1 |
|
从标准输入中读取已经进行base64编码的内容,解码输出。
1 | base64 -d |