npm install crypto-js
// 文件base64转ArrayBuffer二进制缓存原文
function base64ToArrayBuffer(base64) {
base64 = base64.replace(/[\n\r]/g, "");
// atob() 方法用于解码使用 base-64 编码的字符串。
const raw = window.atob(base64);
const rawLength = raw.length;
const uInt8Array = new Uint8Array(rawLength);
for (let i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i);
}
return uInt8Array.buffer;
}
// 引入 CryptoJS 库
const Crypto = require("crypto-js");
// 定义待计哈希值的 base64 二进制原文
const base64Input = "SGVsbG8gd29ybGQh"; // 示例:Hello world!
// 将 base64 编码的原文转换为字节数组
//const binaryInput = CryptoJS.enc.Base64.parse(base64Input);
const binaryInput=base64ToArrayBuffer(base64Input);
// 计算 SM3 哈希值
const sm3Hash = CryptoJS.SM3(CryptoJS.lib.WordArray.create(binaryInput));
// 将哈希值转换为 base64 编码
const base64Hash = sm3Hash.toString(CryptoJS.enc.Base64);
// 打印结果
console.log(base64Hash);
如何使用第三方库CryptoJS来计算base64二进制原文的SM3算法哈希值的base64
于 2023-08-08 11:03:14 首次发布