- 转换说明:字符串md5加密生成16位或32位大小写字符。
MD5能解密吗?为什么能在线解密:MD5再次申明没有解密的方法,最好的反驳就是:数据源是无穷尽的,而 MD5密文是有限的。网上md5的破解主要都是采用暴力生成各种字符串组合然后进行hash,很多用户的密码都不够复杂,所以很容易被这种方式生成出来。防范这种方式的办法一个是随机salt,只要salt够随机也够长,就会带来巨大的状态空间,极大降低被暴力生成到的可能。另一个办法是生成hash的速度够慢,比如迭代1000次,这样就大大降低了暴力运算的速度。
还有种破解就是采用彩虹表和字典:通过数据库把常见字符转的MD5存储起来为彩虹表,然后直接反查。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。
比如我通过大量例子发现某密文中A对应C,然后我会记在数据字典中,下次直接用C代替A,看上去好像了破解了,实则并没有破解,只是找到了规律适应这种密文而已。
MD5加密为什么不可逆:MD5不可逆的原因是由于它是一种散列函数(也叫哈希函数,哈希函数又称散列函数,杂凑函数,他是一个单向密码体制,即从明文到密文的不可逆映射,只有加密过程没有解密过程,哈希函数可以将任意长度的输入经过变化后得到固定长度的输出,这个固定长度的输出称为原消息的散列或消息映射。 理想的哈希函数可以针对不同的输入得到不同的输出,如果存在两个不同的消息得到了相同的哈希值,那我们称这是一个碰撞),使用的是hash算法,在计算过程中原文的部分信息是丢失了的。一个MD5理论上是可以对应多个原文的,因为MD5是有限多个而原文是无限多个的。MD5码128位2进制数,最多有2^128种可能但是字符串的数量显然是有无数种可能的。