Пока вы используете тот же ключ и тот же IV (вектор инициализации), вы получите тот же результат, например,
const crypto = require('crypto');
function encrypt(plainText, keyBase64, ivBase64) {
var key = Buffer.from(keyBase64, 'base64');
var iv = Buffer.from(ivBase64, 'base64');
/* Using 128 Bit AES with CBS. */
var cipher = crypto.createCipheriv('aes-128-cbc', key, iv);
cipher.update(plainText, 'utf8', 'base64')
return cipher.final('base64');
};
var keyBase64 = "sTEhO2zJ8f2Lck59VppiCQ==";
var ivBase64 = 'Xpu5CSY5hz0PeDnNF0TM4A==';
var plainText = 'Sample email text';
console.log('Plaintext: ', plainText);
var cipherText = encrypt(plainText, keyBase64, ivBase64);
console.log('Ciphertext: ', cipherText);
var cipherText2 = encrypt(plainText, keyBase64, ivBase64);
console.log('Ciphertext 2: ', cipherText2);
Вы также можете рассмотреть возможность хеширования электронной почты и сохранения хэша,например,
var sha256 = crypto.createHash('sha256').update(plainText).digest("hex");
console.log('SHA256: ', sha256);
Хеш будет стабильным для данного тела письма.