在Ruby中使用HMAC SHA256 [英] Using HMAC SHA256 in Ruby

查看:357
本文介绍了在Ruby中使用HMAC SHA256的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm trying to apply HMAC-SHA256 for generate a key for an 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"作为参数,则得到相同的结果)

The output of this is always this: (if I put '12345' as parameter or 'HUSYED815X', I do get the same)

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

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

The API is not working because of this... Can some one help me with that?

推荐答案

根据文档

返回实例表示为二进制字符串的身份验证代码.

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

如果使用时遇到问题,则可能需要OpenSSL::HMAC.hexdigest

If you have a problem using that maybe you need a hex encoded form provided by OpenSSL::HMAC.hexdigest

示例

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

OpenSSL::HMAC.digest(digest, key, data)
#=> "\xF7\xBC\x83\xF40S\x84$\xB12\x98\xE6\xAAo\xB1C\xEFMY\xA1IF\x17Y\x97G\x9D\xBC-\x1A<\xD8"

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

这篇关于在Ruby中使用HMAC SHA256的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆