使用Crypto进行AES加密并使用CryptoJS进行解密返回空字符串

时间:2019-04-02 08:08:05

标签: node.js react-native cryptography aes cryptojs

我的后端使用来自node.js的Crypto加密字符串。

在客户端,我想使用CryptoJS解密字符串。但是,我总是得到一个空字符串。

加密(加密):

function encrypt(value) {
  const cipher = crypto.createCipher('aes-256-ctr', 'SECRET_STRING');
  let crypted = cipher.update(value,'utf8','hex');
  crypted += cipher.final('hex');
  return crypted;
}

解密(CryptoJS):

const decrypt = (value) => {
  const bytes = CryptoJS.enc.Hex.parse(value);
  const decrypted = CryptoJS.AES.decrypt(
    bytes,
    'SECRET_STRING',
    { 
       mode: CryptoJS.mode.ECB, 
       padding: CryptoJS.pad.NoPadding
    },
  );
  return decrypted.toString(CryptoJS.enc.Utf8);
};

这将返回一个空字符串。我会误解什么,我在做错什么?

0 个答案:

没有答案