Base64

此文仅在了解Base64编码与解码。顺便学习其他加密算法。如SHA1 MD5。对其中涉及的名词进行了解,探索。

https://en.wikipedia.org/wiki/Base64

过程:

一个字符占8位,转为ASCII字符,再转为二进制,对应于3个字符,为24位,吧24位分我4组,每组6位,不够8位前面补0,计算十进制,由ASCII表得所需结果。

这是一个简单的编码解码过程。

问题:

padding:

然而有些情况需要 特殊的padding。

如上面说的,3个字节是24位,那么只有一个字节,或两个字节时不够24位的情况呢?下面就是解决办法。

末尾补 等号: 一个字节补欠一个;两个字节补=表示欠一个字节

然后,再用”=”字符当做6个位,继续填充,直至总位数能被8带整除. 右边补位

字符串 二进制序列(红字为填充位) 编码结果
PHP 010100 000100 100001 010000 UEhQ
it 011010 010111 010000 xxxxxx aXQ=
bool 011000 100110 111101 101111 011011 000000 xxxxxx xxxxxx Ym9vbA==

URL解码与其他:

http://www.yanshiba.com/archives/638