微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 在Ruby中使用HMAC SHA256

我正在尝试应用HMAC-SHA256来生成Rest API的密钥.

我正在做这样的事情:

def generateTransactionHash(stringToHash)
  key = '123'
  data = 'stringToHash'
  digest = OpenSSL::Digest.new('sha256')

  hmac = OpenSSL::HMAC.digest(digest,key,data)
  puts hmac
end

这个的输出总是这样:(如果我把’12345’作为参数或’HUSYED815X’,我会得到相同的)

ۯw/{o���p�T����:��a�h��E|q

由于这个原因,API无法正常工作…有人可以帮助我吗?

解决方法

根据文档 OpenSSL::HMAC.digest

Returns the authentication code an instance represents as a binary string.

如果您在使用时遇到问题,可能需要OpenSSL :: HMAC.hexdigest提供的十六进制编码格式

key = 'key'
data = 'The quick brown fox jumps over the lazy dog'
digest = OpenSSL::Digest.new('sha1')

OpenSSL::HMAC.digest(digest,data)
#=> "\xDE|\x9B\x85\xB8\xB7\x8A\xA6\xBC\x8Az6\xF7\n\x90p\x1C\x9D\xB4\xD9"

OpenSSL::HMAC.hexdigest(digest,data)
#=> "de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9"

原文地址:https://www.jb51.cc/ruby/268973.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐