16位哈希函数

发布于 2024-08-24 17:51:22 字数 91 浏览 5 评论 0原文

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

Is there a hash function that returns a 16-digit hex value (as MD5 returns 32-digit), or is there a library (for C++) in which I can use MD5 or SHA-1 which returns a 16-digit value

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

善良天后 2024-08-31 17:51:22

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

Since you're willing to live with the much-higher collision rate, you can just truncate the MD5 hash of the data.

—━☆沉默づ 2024-08-31 17:51:22

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

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

is there a library (for C++) in which I can use MD5 or SHA-1 which returns a 16-digit value

Lookup the OpenSSL crypto library (free) or RSA BSAFE (paid).

忘羡 2024-08-31 17:51:22

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

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

If you truncate the size of a cryptographic hash function, you will break it - by which I mean you're very likely to damage the properties which make it cryptographically secure. If the cryptographic properties aren't important to you, then you don't need a cryptographic hash at all - you'd be better off with a checksum or non-cryptographic hash.

And whatever you're doing, don't use md5. If you need a cryptographic hash function, md5 isn't a good choice as algorithms exist that create collisions in a reasonable amount of time. If you don't need a cryptographic hash function, then md5 is overkill.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文