用盐计算(非 MD5)128 位散列
Computing a (Non-MD5) 128 bit hash with salt
因此,对于我正在编写的一段代码,我想创建一个 128 位哈希 - 就像 MurmurHash3 库中的那样 (https://pypi.python.org/pypi/mmh3/2.5.1)
注意:我还想在我已经作为字符串的散列中添加盐
我环顾四周,有人建议将 SHA256 散列截断为 128 位,但有没有办法使用 Crystal 获取 SHA256?
我知道它的库支持 MD5 和 SHA1,但我什至可以在代码中使用 OpenSSL 库吗?这需要 OS 是 运行 OpenSSL 吗?
编辑:
Crystal (https://crystal-lang.org/api/0.24.1/OpenSSL/Digest.html) 中有一个 OpenSSL::Digest
模块,但我如何生成最终被截断为 128 位的散列
您可以使用 OpenSSL 模块生成 SHA256 摘要,或 OpenSSL 支持的任何其他算法。不幸的是,我不建议截断,因为这不是真实哈希的准确表示,而且发生冲突的可能性更高。你有没有想过把 murmur 移植到 Crystal,我相信很多人都会喜欢看图书馆。我的另一个建议是只使用 256 位,因为它更安全。
因此,对于我正在编写的一段代码,我想创建一个 128 位哈希 - 就像 MurmurHash3 库中的那样 (https://pypi.python.org/pypi/mmh3/2.5.1)
注意:我还想在我已经作为字符串的散列中添加盐
我环顾四周,有人建议将 SHA256 散列截断为 128 位,但有没有办法使用 Crystal 获取 SHA256?
我知道它的库支持 MD5 和 SHA1,但我什至可以在代码中使用 OpenSSL 库吗?这需要 OS 是 运行 OpenSSL 吗?
编辑:
Crystal (https://crystal-lang.org/api/0.24.1/OpenSSL/Digest.html) 中有一个 OpenSSL::Digest
模块,但我如何生成最终被截断为 128 位的散列
您可以使用 OpenSSL 模块生成 SHA256 摘要,或 OpenSSL 支持的任何其他算法。不幸的是,我不建议截断,因为这不是真实哈希的准确表示,而且发生冲突的可能性更高。你有没有想过把 murmur 移植到 Crystal,我相信很多人都会喜欢看图书馆。我的另一个建议是只使用 256 位,因为它更安全。