gpt4 book ai didi

javascript - 将加密 hmac 转换为 crypto-js hmac 字符串

转载 作者:行者123 更新时间:2023-11-30 19:38:10 27 4
gpt4 key购买 nike

我正在尝试转换一个 secret 的 hmac 字符串,以允许我在 postman 中测试我的 api。 Postman 预装了 cryptojs。这是我在我的测试服务器上使用加密的过程:

const crypto = require('crypto');
const generateHmac = (privateKey, ts) => {
const hmac = crypto.createHmac('sha256', privateKey);
hmac.update(ts);
const signature = hmac.digest('hex');
return signature;
}

这与 postman 中使用 cryptojs 生成的字符串不匹配:

const createHmacString = (privateKey, ts) => {
const hmac = CryptoJS.HmacSHA256(ts, privateKey).toString(CryptoJS.enc.Hex)
return hmac;
}

不确定我在这里做错了什么。提前致谢!

最佳答案

好吧,终于弄明白了——crypto-js 不提供实际的字节,所以编码一切都是必要的:

const createHmacString = (privateKey, ts) => {
const key = CryptoJS.enc.Utf8.parse(privateKey)
const timestamp = CryptoJS.enc.Utf8.parse(ts)
const hmac = CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA256(timestamp, key))

// const hmac = CryptoJS.HmacSHA256(ts, privateKey).toString(CryptoJS.enc.Hex)
return hmac;
}

let ts = new Date().getTime();
const signature = createHmacString("your-private-key", ts);

关于javascript - 将加密 hmac 转换为 crypto-js hmac 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55718029/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com