转换c#到Ruby - HMAC SHA256功能

本文关键字:HMAC SHA256 功能 Ruby 转换 | 更新日期: 2023-09-27 18:08:54

我试图获得HMAC SHA256值(str_signature),我遵循这篇文章中的Ruby代码,尽管他的例子是从Java转换代码(使用十六进制密钥)。

<标题> c# h1> Ruby h1> 新:
  1. 将pack方法更改为输出base64字符串。

  2. 编辑变量名以保持一致性

引用:

  1. 使用的十六进制,有不同的输出字符串长度。
  2. 这个例子使用了摘要方法,虽然我不确定关键参数有什么值,希望它是一个base64编码的字符串。
  3. 再次使用hexdigest。我很确定digest是与hexdigest比较的方法,因为hexdigest输出的字符串比我从c#脚本中得到的HMAC值的字符串更长。

转换c#到Ruby - HMAC SHA256功能

终于惹毛我了!

我其实并不需要创建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)

感谢这个链接