Я пытаюсь выполнить простое шифрование с помощью Crypto.js, а затем выполнить дешифрование с помощью криптографической библиотеки Node.js.
const crypto = require('crypto')
const CryptoJS = require('crypto-js')
const message = 'Hello World'
const key = '3zTvzr3p67VC61jmV54rIYu1545x4TlY'
const iv = '655478daef95fdae'
const encrypted = CryptoJS.AES.encrypt(message, key, {
iv: iv,
padding: CryptoJS.pad.Pkcs7,
mode: CryptoJS.mode.CBC
})
const encryptedString = encrypted.toString()
const cipher = crypto.createDecipheriv('aes-256-cbc', key, iv)
let decrypted = cipher.update(encryptedString, 'base64', 'utf8')
decrypted += cipher.final('utf8')
console.log(decrypted)
Вызов cipher.final('utf8')
выдает ошибку:
Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt
Насколько я видел, эта ошибка связана с неправильным ключом, но я не понимаю, как это могло быть здесь.