
原因:盐被称作“Salt值”,这个值是由系统随机生成的,并且只有系统知道。即便两个用户使用了同一个密码,由于系统为它们生成的salt值不同,散列值也是不同的。
MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
扩展资料:
MD5相对MD4所作的改进:
1、增加了第四轮。
2、每一步均有唯一的加法常数。
3、减弱第二轮中函数的对称性。
4、第一步加上了上一步的结果,这将引起更快的雪崩效应(就是对明文或者密钥改变 1bit 都会引起密文的巨大不同)。
5、改变了第二轮和第三轮中访问消息子分组的次序,使其更不相似。
6、近似优化了每一轮中的循环左移位移量以实现更快的雪崩效应,各轮的位移量互不相同。
参考资料来源:百度百科-MD5
HASH 值不可逆的,就算能还原出也不是原文了,因为它是一段字符串(或文件)生成的唯一特征码,不同的字串(或文件)那怕差别只有一个字节,它们生成出来的HASH码(特征码)都会不相同,这种技术本身是对于校验两个要比较的字符串或文件是否相同是否被篡改了。HASH在一定机率下,有足够强大的算力,可能产生出碰撞,即你生成了另一个字串的HASH与别人生成的居然相同了好比重号了,这机率很低,但通辅助加上salt的校验后又更进加强了被碰撞的可能,salt是hash 的补充加固。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)