转自 http://blog.sina.com.cn/s/blog_8882eb010102w1pk.html本人于(2015-09-19 12:42:05)创作,无法实现搬迁,只能重新粘贴。
从入职不久就听到并见到过base64加密,但一直也没去弄个究竟,今天上午在解决问题的时候又遇到了。上网查了查,基本明白原理了。在这里将自己的理解记录下来,方便以后提醒自己。
加密是“防君子不防小人”。这句话非常恰当,base64就是这样设计的。一眼看去看不出信息,但你非要弄明白是啥,按照规则推一下就会知道内容是什么。
加密过程就是把要加密的数据按ASCII码转换一下,再每三个字节分为一组,再都展开成二进制,3*8=24位。再把这24位分成4组,每组6位。再把这6位的数查base64表格,找到对应的代表。所有的都转换完之后连接起来就OK了。如果在最开始分组的时候最后剩下的不够3个字节,全都补0,凑够3个字节。
base64表格:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ 26+26+10+2=64
举个例子:要加密数字1,差ascii表发现1为49,转化为2进制为 0011 0001,不够3个字节,补2个字节,补完是24位:0011 0001 0000 0000 0000 0000.按6位划分为4个数,为001100 010000 000000 000000,转化为十进制表示为:12 16 0 0 , 差base64表:MQ==。
就是这么简单,纸老虎一个。