我使用模块加密/解密数据。
var crypto = require('crypto');
function encrypt(text){
var cipher = crypto.createCipher('aes-256-cbc','secret key');
var encrypted = cipher.update(text.toString(),'utf8','hex') + cipher.final('hex');
return encrypted;
}
function decrypt(text){
var decipher = crypto.createDecipher('aes-256-cbc','secret key');
var decrypted = decipher.update(text.toString(),'hex','utf8') + decipher.final('utf8');
return decrypted ;
}
module.exports.encrypt = encrypt;
module.exports.decrypt = decrypt;
将其加载到我的路线中:
var crypt = require('./middleware/encrypt');
var id = 10;
var id_crypted = crypt.encrypt(id);
console.log(id_crypted);
var id_decrypted = crypt.decrypt(id_crypted);
console.log(id_decrypted);
所以这很好用(除了我必须在crypt模块中使用text.toString(),否则它会崩溃..)。
问题在于解密。 我无法控制将被解密的数据(我从cookie中取出它们)。
例如,如果我想要解密值“10”,那么我的所有应用程序都会崩溃,因为解密函数会抛出错误的最终块长度错误。
那么当出现错误时,如何防止我的模块崩溃?
答案 0 :(得分:0)
将有问题的函数调用包装在try-catch块中。
答案 1 :(得分:-1)