16位散列函数

时间:2010-03-14 23:55:04

标签: c++ hash openssl md5 sha1

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

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:1)

  

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

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

答案 2 :(得分:1)

如果你截断加密哈希函数的大小,你将打破它 - 我的意思是你很可能会破坏使其加密安全的属性。如果加密属性对您不重要,那么您根本不需要加密哈希 - 使用checksumnon-cryptographic hash最好。

无论你做什么,都不要使用md5。如果您需要加密哈希函数,md5不是一个好的选择,因为存在在合理的时间内产生冲突的算法。如果您不需要加密哈希函数,那么md5就是矫枉过正。