1

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

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

我的顶点代码是:

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

我猜这个问题与转换为二进制或可能与大小写有关,但我无法匹配预期的结果。

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

4

1 回答 1

2

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

EncodingUtil.base64Encode(mac);

如果 generateMac + convertToHex 不适合您,我会感到惊讶。他们一直为我工作。我确定您已经看过了,但以防万一我会查看文档中的 Amazon Web 服务示例。

于 2013-05-10T02:59:38.710 回答