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

前端之家收集整理的这篇文章主要介绍了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"

猜你在找的Ruby相关文章