我正在尝试将红宝石的后端连接到带有端点的rails上,它要求每个请求的hmac签名。他们给了我.html和一些javascript,并在资源管理器控制台中返回了给定键和有效载荷的hmac值,但是当我在rails中用ruby做等效代码时,给定相同参数,我得到的值却不同。接下来,我将html和我的代码粘贴到ruby中,我需要我的ruby代码才能给出javascript答案。
我已经尝试将我的代码中输入的编码更改为ascii,iso8859-1和utf-8。 我已经将我的hmac答案整理为互联网上多个hmac生成器给出的答案,他们给了我1页的答案exepto,给出了javascript答案。 这是给出de javascript答案的代码:https://www.liavaag.org/English/SHA-Generator/HMAC/这是来自第三方的javascreipt
function toHex (message) {
var str = '', c;
for (var i = 0; i < message.length; i++) {
c = message.charCodeAt(i);
str += c.toString(16) ;
}
return str;
}
function sign(originalMessage, key){
var message =toHex(originalMessage);
var signature, hmac;
hmac = new sjcl.misc.hmac(sjcl.codec.hex.toBits(key),
sjcl.hash.sha256);
signature =sjcl.codec.hex.fromBits(hmac.encrypt(sjcl.codec.hex.toBits(message)));
return signature;
}
这是我的代码:
def toHex(消息)
str =''
角色= 0
继续= 0
while(cont def sign(original_message, key)
#byebug
message = toHex(original_message)
signature = ''
signature = OpenSSL::HMAC.hexdigest("SHA256", key, message)
return signature
end