简体   繁体   中英

Crypto-JS hash functions return object

I'm trying to hash a string using the crypto-js library in a react/typescript project. I'm using crypto-js 3.1.9 and @types/crypto-js 3.1.33.

Here's some code:

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

export const hashString= (str: string): string => {
  const hash = CryptoJS.MD5(str);
  return hash;
}

I expect hash to be of type string, as specified in the documentation of the crypto-js implementation. But the function returns an object, that contains a wordarray.

I also tried calling

hash.toString(CryptoJS.enc.Hex) 

but that didn't work, because typescript also assumes that hash will be a string. So a parameterized toString function is not allowed.

What am I doing wrong?

I know this is an old question, but I had this question recently and in case someone is looking for an answer, I just cast the result to a string. Seems to work fine for me.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM