3

是否有返回 16 位十六进制值的哈希函数(因为 MD5 返回 32 位),或者是否有一个库(用于 C++),我可以在其中使用返回 16 位值的 MD5 或 SHA-1

4

3 回答 3

7

由于您愿意忍受更高的冲突率,因此您可以截断数据的 MD5 哈希。

于 2010-03-14T23:57:30.453 回答
1

是否有一个库(用于 C++),我可以在其中使用返回 16 位值的 MD5 或 SHA-1

查找 OpenSSLcrypto库(免费)或 RSA BSAFE(付费)。

于 2010-03-14T23:59:01.673 回答
1

如果你截断加密哈希函数的大小,你就会破坏它——我的意思是你很可能会破坏使其加密安全的属性。如果加密属性对您来说并不重要,那么您根本不需要加密散列 - 您最好使用校验或非加密散列

无论你在做什么,都不要使用 md5。如果您需要加密哈希函数,md5 不是一个好的选择,因为存在在合理时间内创建冲突的算法。如果您不需要加密哈希函数,那么 md5 就大材小用了。

于 2010-03-30T10:11:46.677 回答