什么是base64呢?
它是一种加密算法,有着广泛的应用和支持,但却是当今最弱的编码标准之一。它主要是对明文转换后的二进制序列做处理,使之变为不能被人直接识别的形式。
加密步骤:
1. 取得明文对应的二进制编码;
2. 每3个字节组成一个单元,再把每个单元内的3字节变成4个字节,变化方法是:把原来的3*8=24个比特位,分成 4*6=24个比特位,且在每6个比特位前面加2个0,这样就组成了4个字节(如果,序列最后不够3个字节,例如剩余2 个字节或是1个字节,也要看成是一个单元最后变成4个字节,不足的用=号表示);
3. 查找base64位编码表,把转换后的字节用对应的字符表示,这样,原来的明文就用base64加密了;
举个例子:
字符串“A”,进行Base64编码,如下所示:
字符 A
ASCII码 65
二进制码 01000001
4个6位二进制码 010000 010000
4个8位二进制码 00010000 00010000
十进制码 16 16
字符表映射码 Q Q = =
这个一个字节,也要把它当成一个单元来处理。首先,8位比特安装6位进行分解,剩余2位不足6位要在后面补0,分解完后,要在前面加0组成2个字节,因为不足4个字节,后面要用2个=号来补。最后,经过base64加密后,原来的明文“A”就被加密为“QQ==”。加密后的大小比原来的多了约1/3,有时候是比1/3多,最后剩一个字节或2个字节时。
实现该算法的开源框架:
http://www.sauronsoftware.it/projects/javabase64/download.php