Crypto-JS哈希函数返回对象

And*_*cus 5 javascript cryptojs typescript

我正在尝试在react / typescript项目中使用crypto-js库对字符串进行哈希处理。我正在使用crypto-js 3.1.9和@ types / crypto-js 3.1.33。

这是一些代码:

import CryptoJS = require("crypto-js");

export const hashString= (str: string): string => {
  const hash = CryptoJS.MD5(str);
  return hash;
}
Run Code Online (Sandbox Code Playgroud)

我希望hash是crypto-js实现文档中指定的字符串类型。但是该函数返回一个对象,其中包含一个字数组。

我也试过打电话

hash.toString(CryptoJS.enc.Hex) 
Run Code Online (Sandbox Code Playgroud)

但这没有用,因为打字稿还假定hash它将是一个字符串。因此,toString不允许使用参数化函数。

我究竟做错了什么?

小智 1

我知道这是一个老问题,但我最近有这个问题,如果有人正在寻找答案,我只是将结果转换为字符串。似乎对我来说效果很好。

console.log(typeof CryptoJS.MD5('hello'));
console.log("String() => ", String(CryptoJS.MD5('hello')));
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
Run Code Online (Sandbox Code Playgroud)