是否有一个返回16位十六进制值的哈希函数(因为MD5返回32位),或者是否有一个库(用于C ++),我可以使用MD5或SHA-1返回一个16位数字值
答案 0 :(得分:7)
由于您愿意使用更高的冲突率,因此您可以截断数据的MD5哈希值。
答案 1 :(得分:1)
是否有一个库(用于C ++),我可以使用MD5或SHA-1返回一个16位数值
查找OpenSSL crypto
库(免费)或RSA BSAFE(付费)。
答案 2 :(得分:1)
如果你截断加密哈希函数的大小,你将打破它 - 我的意思是你很可能会破坏使其加密安全的属性。如果加密属性对您不重要,那么您根本不需要加密哈希 - 使用checksum或non-cryptographic hash最好。
无论你做什么,都不要使用md5。如果您需要加密哈希函数,md5不是一个好的选择,因为存在在合理的时间内产生冲突的算法。如果您不需要加密哈希函数,那么md5就是矫枉过正。