因此,对于我正在编写的一段代码,我想创建一个128位哈希 - 就像MurmurHash3库中的那个(https://pypi.python.org/pypi/mmh3/2.5.1)
注意:我还想在哈希中添加一个盐作为字符串
我环顾四周,建议将SHA256哈希截断为128位,但是有没有办法使用Crystal获取SHA256?
我知道它的库中支持MD5和SHA1,但我甚至可以在代码中使用OpenSSL库吗?这是否需要操作系统运行OpenSSL?
修改
Crystal(https://crystal-lang.org/api/0.24.1/OpenSSL/Digest.html)中有一个OpenSSL::Digest
模块但是如何生成一个最终被截断为128位的哈希
答案 0 :(得分:1)
您可以使用OpenSSL模块生成SHA256摘要或OpenSSL支持的任何其他算法。不幸的是,我不建议截断,因为这不是真正哈希的准确表示,并且具有更高的冲突机会。你有没有想过把杂音移到水晶,我相信很多人都会喜欢看图书馆。我的另一个建议是使用256位,因为它更安全。