转换c#到Ruby - HMAC SHA256功能
本文关键字:HMAC SHA256 功能 Ruby 转换 | 更新日期: 2023-09-27 18:08:54
我试图获得HMAC SHA256值(str_signature),我遵循这篇文章中的Ruby代码,尽管他的例子是从Java转换代码(使用十六进制密钥)。
<标题> c# h1> Ruby h1> 新:将pack方法更改为输出base64字符串。
编辑变量名以保持一致性
引用:
- 使用的十六进制,有不同的输出字符串长度。
- 这个例子使用了摘要方法,虽然我不确定关键参数有什么值,希望它是一个base64编码的字符串。
- 再次使用hexdigest。我很确定digest是与hexdigest比较的方法,因为hexdigest输出的字符串比我从c#脚本中得到的HMAC值的字符串更长。
终于惹毛我了!
我其实并不需要创建sha256摘要对象,我只需要输入'sha256'参数。
require 'openssl'
require "base64"
#API_KEY = base64 encoded string
key = Base64.decode64(API_KEY)
hash = OpenSSL::HMAC.digest('sha256', key, "Message")
puts Base64.encode64(hash)
感谢这个链接