使用crypto-js进行aes的ecb加密,每次加密出来的结果不一样?怎么解决呢

/**
 * AES加密
 * @param {any} toEncryptStr 要进行加密的内容
 * @param {String} secretKey 秘钥
 */
export function encryptAES (toEncryptStr, secretKey) {
  // return cryptoJs.AES.encrypt(JSON.stringify(toEncryptStr), secretKey, {mode: cryptoJs.mode.ECB, padding: cryptoJs.pad.NoPadding}).toString()
  return Base64.encode(cryptoJs.AES.encrypt(JSON.stringify(toEncryptStr), secretKey, {mode: cryptoJs.mode.ECB, padding: cryptoJs.pad.NoPadding}))
}

/**
 * AES解密
 * @param {String} toDEcryptStr 要进行解密的内容
 * @param {String} secretKey 秘钥
 */
export function decryptAES (toDecryptStr, secretKey) {
  return cryptoJs.AES.decrypt(Base64.decode(toDecryptStr), secretKey, {mode: cryptoJs.mode.ECB, padding: cryptoJs.pad.NoPadding}).toString(cryptoJs.enc.Utf8)
  // return cryptoJs.AES.decrypt(toDecryptStr, secretKey, {mode: cryptoJs.mode.ECB, padding: cryptoJs.pad.NoPadding}).toString(cryptoJs.enc.Utf8)
}

使用以上代码进行加密出的内容是不定的,也无法解密,如图:

clipboard.png

请问使用这个组件如果想要加密出来的内容是一定的,并能正确解密,改如何配置呢

阅读 6.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进