Ruby 两个库的相同算法, hash 结果不一致的问题

wwwicbd · 2018年07月16日 · 最后由 wwwicbd 回复于 2018年07月16日 · 1325 次阅读
require 'digest'
require 'openssl'

str = '内容😝'
key = ''

p Digest::SHA1.hexdigest str
p OpenSSL::HMAC.hexdigest(OpenSSL::Digest::SHA1.new, key, str)

=begin
"5d968ccf64b6f17441c39d076f2fb53119cbeafc"
"d0d3ec791cee9b44a21338973729a080572a6e81"
=end

这里的 key 要怎么选才能得到相同的 hash 呢? (其实问题的本质是不懂怎么看源码~)

HMAC != Digest,上面只是用了 SHA1 作为他的散列函数。

https://zh.wikipedia.org/wiki/%E9%87%91%E9%91%B0%E9%9B%9C%E6%B9%8A%E8%A8%8A%E6%81%AF%E9%91%91%E5%88%A5%E7%A2%BC

至少多了个 key 能看出来吧。

Rei 回复

原来如此,感谢!!!

wwwicbd 关闭了讨论。 07月16日 18:44
需要 登录 后方可回复, 如果你还没有账号请 注册新账号