我在nodejs上遇到了一个奇怪的场景,当加载节点服务器时,crypto只对文本加密和解密一次。第二次尝试后,它加密文本,但第二次尝试无法解密文本。
这是我的代码:
function Encrypt(mytext) {
var cipher = crypto.createCipher('aes-256-cbc','fa97be5d286a67114cf74acf46d179725581d562');
var crypted = cipher.update(mytext,'utf8','hex');
crypted += cipher.final('hex');
}
function Decipher(mytext) {
var decipher = crypto.createDecipher('aes-256- cbc','fa97be5d286a67114cf74acf46d179725581d562');
var dec = decipher.update(mytext,'hex','utf8');
dec += decipher.final('utf8');
}
这可以正常运行nodejs服务器完美地加载,加密和解密数据,第二次在其他地方使用此函数时,它使用不同的文本或密钥,无法解密文本。我很困惑。
答案 0 :(得分:2)
我添加后解决了这个问题:
删除require.cache [require.resolve('./ templates / prd')];
所需对象保留在缓存中并继续反复加密。一旦我在每次加载模板时清除缓存,它就会开始正确加密。