我正面临在NodeJS中实现此JAVA代码的问题
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(val.getBytes());
byte byteData[] = md.digest();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteData.length; i++) {
sb.append(
Integer.toString(
(byteData[i] & 0xff) + 0x100, 16
).substring(1)
);
}
return sb.toString();
这不是严格的SHA-256。我想了解这里发生了什么不同。
我理解在NodeJS中生成SHA-256的方法是:
crypto.createHash('sha256').update(message).digest('hex')
但在这种情况下,它给出了与JAVA代码不同的结果。
我是否需要获取摘要二进制文件,然后以与digest(hex)
不同的方式生成十六进制文件?