一、Base64编码:把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换,编码表的大小为2^6=64,这也是Base64名称的由来。
二、Base64编码步骤
1)将所有字符转化为ASCII码
2)将ASCII码转化为8位二进制
3)将二进制3个归成一组(不足3个在后边补0)共24位,再拆分成4组,每组6位
4)统一在6位二进制前补两个0凑足8位
5)将补0后的二进制转为十进制
6)从Base64编码表获取十进制对应的Base64编码
三、转换举例
1)zyq
2)mzwu
为什么不会出现3个‘=’号呢,一个‘=’号代表一个空的占位符,而3个字符刚好转成4个Base64字符,呵呵。
四、Base64编码应用
1)图片大部分都是可以转换成Base64编码,直接使用。一般用来处理不大的图片,别的文件格式也可以,过大的base64其实意义不大了。
<img src="https://img-blog.csdnimg.cn/2022010704134678467.gif" />
2)将canvas保存时非常有用,参考http://www.nihilogic.dk/labs/canvas2image/,修改MIME头可以用于保存文件,如修改为image/octet-stream
var strDataURI = oCanvas.toDataURL();
// returns "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACt..."
学习某位大神猜解加密串的文章,这里做个记录,http://bbs.blackbap.org/thread-3973-1-1.html。。。
----------------------------------------------------
GCV15/bVem29Cu9CiBpP+w GCV15/bVem29Cu9CiBpP+w E5Ia47UWnXs19vyWWsjKbg Q3GN6LRsX/ba1eJUEQqLeA Dhvt8khDDmpERqXcsUhtWQ
以E5Ia47UWnXs19vyWWsjKbg为例,可能这么看看不出什么效果,那我们换个姿势看:E5Ia47UWnXs19vyWWsjKbg==,不过有人会问,长的像又不表示这就是base64。
走个流程熟悉一下,先按照Base64的加密方式反向解密,得到二进制,如果按照ascii码来转,则很多事无意义的字符,那么按照十六进制转换来看看
00010011 13 10010010 92 00011010 1A 11100011 E3 10110101 B5 00010110 16 10011101 9D 01111011 7B 00110101 35 11110110 F6 11111100 FC 10010110 96 01011010 5A 11001000 C8 11001010 CA 01101110 6E
得到:13921AE3B5169D7B35F6FC965AC8CA6E,看着眼熟吧,就是MD5加密后的结果,MD5解密的网站有很多,一般都可以破解,但有些密码破解需要收费的。
#########################################################
一、MD5:Message-Digest Algorithm 5(消息摘要算法第五版)的简称,是当前计算机领域用于确保信息传输完整一致而广泛使用的散列算法之一(又译哈希算法、摘要算法等),主流编程语言普遍已有MD5的实现。将数据(如一段文字)运算变为另一固定长度值,是散列算法的基础原理,MD5的前身有MD2、MD3和MD4。虽然已被破解,但仍然具有较好的安全性,加之可以免费使用,所以仍广泛运用于数字签名、文件完整性验证以及口令加密等领域。
二、32位与16位MD5加密的区别:16位加密就是从32位MD5散列中把中间16位提取出来!其实破解16位MD5散列要比破解32位MD5散列还慢因为他多了一个步骤,就是使用32位加密后再把中间16位提取出来, 然后再进行对比而破解32位的则不需要,加密后直接对比就可以了。
字符串:abc MD5(16位):3CD24FB0D6963F7D MD5(32位):900150983CD24FB0D6963F7D28E17F72
--------------------------------------
Base64加解密,http://base64.xpcha.com/
MD5加密,http://tool.chinaz.com/Tools/MD5.aspx
MD5解密,http://www.cmd5.com/
-----------------------------------------
ASCII码对照表