ruby和javascript hmac签名与给定相同值不匹配

时间:2019-02-07 19:49:39

标签: javascript ruby openssl sha256 hmac

我正在尝试将红宝石的后端连接到带有端点的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

0 个答案:

没有答案