gpt4 book ai didi

ruby - 通过 MD5 哈希算法运行哈希

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:46:15 24 4
gpt4 key购买 nike

我是散列事物的新手,我希望能够通过 MD5 散列运行散列以产生唯一值。目前,我只是将 Hash 转换为字符串,然后通过 MD5 算法运行它。

这是执行此操作的好方法还是有更好的方法使用 MD5 加密哈希?

为了澄清,我正在尝试为没有唯一 ID 的对象创建缓存键,因此我正在尝试使用哈希来创建一个 ID。

最佳答案

Ruby 哈希内置了对 Murmur3 哈希的支持。如果您致力于 md5 哈希,那么使用它是行不通的。如果可以使用它,则只需从 Object 类 ( http://ruby-doc.org/core-2.1.1/Object.html#method-i-hash ) 调用 .hash 方法。

pry(main)> {}.hash
=> 0
pry(main)> {:a => "b"}.hash
=> 2051585302280555993
pry(main)> "foo".hash
=> -2886254516463342771

Murmur3 哈希比 md5 更快,但可能不适合加密用途。如果您必须使用 MD5,我看不出为什么对字符串进行散列从根本上是不好的。如果需要,甚至可以轻松地用 Ruby 以外的语言重新创建相同的散列,因为它将实现与 Ruby 的内部二进制格式分开。

如果您必须使用加密哈希但不支持 MD5,请使用 BCrypt、SHA1 或 SHA256。 MD5 是微不足道的可逆的,不适合保护数据。

编辑:细节和语法

关于ruby - 通过 MD5 哈希算法运行哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23183281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com