我记得有个人告诉我,如果我让他改变4个字节,他可以让一个文件有他想要的任何校验和(CRC-32).
我听说提到腌制哈希.我想知道是否有人将他的文件匹配我的文件会腌制MD5或SHA-1哈希更改结果,以便两个文件不再冲突?或者它只更改结束哈希值?
您正在混合两种不同的哈希值用法:
校验和防止随机(非恶意)错误.
计算用于存储密码,签名消息,证书的加密消息摘要......
CRC对于第一个应用程序来说是一个不错的选择,但完全不适合第二个应用程序,因为它很容易计算碰撞(在数学上说:CRC是线性的).这是你的朋友基本上告诉你的.
MD5和SHA1是用于第二种应用的加密哈希.但是,MD5已被破解,SHA1最近被认为是弱的.尽管如此,即使MD5可以被破解,也需要很长时间才能找到MD5碰撞(几天到几周).
至于salt,它通过混合一些随机的非机密值来计算加密散列本地,这个值称为salt.这可以防止计算全局表,从而可以很容易地从散列值计算可能的值(例如密码).表的计算非常昂贵,但如果没有盐,成本将通过许多破解的密码进行摊销.