javascript - 在 Node.js 中重写函数以生成 Java Hmac SHA512
问题描述
我在java中有以下代码用于使用密钥加密纯文本:
public static String calculateHMAC(String signatureKey, String textToHash) throws GeneralSecurityException {
// Convert Hex string to byte array
byte[] signatureKeyInByteArray = hexStringToByteArray(signatureKey);
SecretKeySpec secretKeySpec = new SecretKeySpec(signatureKeyInByteArray, "HmacSHA512");
Mac mac = Mac.getInstance("HmacSHA512");
mac.init(secretKeySpec);
return Base64.getEncoder().encodeToString(mac.doFinal(textToHash.getBytes()));
}
在节点中,我在做什么:
function getHmacKey(data) {
const hash = crypto.createHmac('sha512', secretKey);
hash.update(data, 'utf8');
return hash.digest('base64'); }
但是得到不同的结果,无法弄清楚出了什么问题。
使用字符串 signatureKEY = "keyy" , textToHash = "text" ,输出:
爪哇:
TKVB2boNHHwkvDtmjRw2p8DNe0XWsBvodWJZAmKK5ey2Xk0+u+q3imug25Dsai32SGy5bnIr+owkWPgby7csoQ==
节点:
IMbZJ6hcShYMLuNi9BYWY9PB3w8/d7tOneN+ZzeSPSozgVDQYrm1x6wbKIdZIomI7lhfU4/Y10yzZgxDfmTsFA==
解决方案
推荐阅读
- git - 是否可以将分支重置为特定状态并选择稍后在同一分支上完成的提交?
- xml - BaseX 错误:没有为 'doc:csv' 声明命名空间
- java - 在java准备好的mysql查询语句中替换字符串?
- javascript - 如何禁用跨度标签上的点击事件 - Angular 6
- c# - 使用 iTextSharp (SignDeferred) 的外部签名 PDF - 无效签名问题(更改/损坏的文档)
- javascript - 运行 Ionic 模块的问题
- git - 如何使 Windows 中的 Visual Studio Code 针对 WSL 区分大小写?
- highcharts - x 和 y 轴的 Highcharts x-range 图表日期时间类型
- android - 有没有办法以编程方式访问三星的剪贴板内容?
- odoo - 杂货店的 POS/库存