Salesforce创建不正确的HMAC SHA1值

时间:2013-05-08 19:35:17

标签: salesforce apex-code hmacsha1

我正在尝试使用Crypto generateMac函数在Salesforce中生成HMAC值,但结果与其他实用程序不匹配。

例如,我正在尝试使用键Hash me对值ac67ad3b8771bf63d4fa9582845a18f921514f36进行哈希处理。我希望结果为66fe419859ac42ad88354dfa52f2196a26d767e1,但实际上是7d1f56c728dfefdcb9edb72b7c0c8df2acf1cae9

我的顶点代码是:

Blob mac = Crypto.generateMac('HMacSHA1', Blob.valueOf('Hash me'),
    Blob.valueOf('33a1211c0ee01511ccba1e456bb95503')); 
string hasedValue = EncodingUtil.convertToHex(mac);

我猜这个问题与转换为二进制或从二进制转换有关,或者与case有关,但是我无法匹配预期的结果。

我的预期结果基于http://hash.online-convert.com/sha1-generator和其他几个在线HMAC计算器的结果。

1 个答案:

答案 0 :(得分:2)

另一种选择是进行base 64编码:

EncodingUtil.base64Encode(mac);

如果generateMac + convertToHex不适合您,我会感到惊讶。他们一直都在为我工作。我确定你看过了,但以防我在documentation中查看亚马逊网络服务示例。