MD5 是单向散列算法:单向散列算法通常用于加密。具体而言,很难做到两个不同的输入得到相同的结果。经常被用来表示自从生成哈希码以来没有故意改变大量数据。由于MD5是单向散列算法,因此重点在于安全性;不幸的是,MD5现在被认为是不安全的。
CRC32 旨在检测数据的意外更改,通常用于网络和存储设备。此算法的目的不是为了防止有意改变,而是为了捕获网络错误和磁盘写入错误等事故;此算法的重点在于速度而非安全性。
crc32与md5的区别是什么?
相同点:
CRC、MD5、SHA1都是通过对数据进行计算,来生成一个校验值,该校验值用来校验数据的完整性;以下是一些可以使用 CRC32 与 MD5 完成的示例:
1. 检测重复文件
如果您想检查两个文件是否相同,CRC32 校验是最佳选择,因为它比 MD5 快。但要小心:CRC 只能可靠地告诉您二进制文件是否不同。
2. 检测恶意软件
如果安全性是一个问题,例如下载文件并根据您的文件检查源的哈希值以查看二进制文件是否未损坏,那么 CRC 是一个糟糕的选择。这是因为攻击者可以制作具有相同 CRC 校验和的恶意软件。在这种情况下,MD5 摘要更安全——CRC 不是为了安全而设计的。