如何使用第三方库CryptoJS来计算base64二进制原文的SM3算法哈希值的base64

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);

你可能感兴趣的:(哈希算法,算法)