我在 nodejs 上遇到了一个奇怪的场景,当我加载 Node 服务器时,加密只对文本加密和解密一次。第二次尝试后,它可以很好地加密文本,但无法在第二次尝试时解密文本。
这是我的代码:
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 服务器完美地加载、加密和解密数据,此功能就可以正常工作,第二次在其他地方使用此功能并使用不同的文本或 key 时,它无法解密文本。我很困惑。
最佳答案
添加后问题解决了:
删除require.cache[require.resolve('./templates/prd')];
所需的对象保留在缓存中,并继续一遍又一遍地加密。一旦我每次加载模板时清除缓存,它就会开始正确加密。
关于node.js - 一次成功加密和解密后,Nodejs Crypto 解密失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20763555/