Я относительно новичок в nodejs и совершенно не знаком с модулем шифрования, поэтому я делаю какую-то очевидную ошибку, которую не понимаю.Ниже приведен код для шифрования и дешифрования строки, созданной функцией php base64_encode / openssl_encrypt.Владельцы проекта хотят сохранить код php, поэтому изменение всего метода невозможно.
Расшифровка работает отлично, однако повторное шифрование дает неверный результат.Спасибо за помощь!
var str='WmE0Ui9aaU1sOG00aGFhVjhHNXlEZz09';
var key=crypto.createHash('sha256').update(password).digest('hex').substr(0,32);
var iv=crypto.createHash('sha256').update(randomiv).digest('hex').substr(0,16);
var decipher=crypto.createDecipheriv('AES-256-CBC',key,iv);
str=Buffer.from(str,'utf8').toString('base64');
str=decipher.update(str,'utf8','base64')+decipher.final('base64');
console.log(str) // 'hey you';
var cipher=crypto.createCipheriv('AES-256-CBC',key,iv);
str=Buffer.from(str,'base64').toString('utf8');
str=cipher.update(str,'base64','utf8')+cipher.final('utf8');
console.log(str) // 'x7YYqnnw4EiCBvq/l1+WTQ=='