我使用模块来加密/解密数据。Nodejs如何防止模块崩溃(加密)
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);
所以这个工作正常(除了我有地穴模块中使用text.toString(),否则它崩溃..)。
问题在于解密。 我无法控制将要解密的数据(我正在将它们从cookie中取出)。
如果例如我想解密值“10”,那么我的所有应用程序崩溃,因为解密函数抛出错误的最终块长度错误。
那么,如何防止我的模块在发生错误时崩溃我的所有应用程序?
谢谢。我需要把它放在我的app.js上? –
启动脚本中的任何位置都应该这样做。建议把它放在底部,这样你就不必一直滚动它。 – leko
请注意,uncaughtException是异常处理的一种非常粗暴的机制,将来可能会被删除。我不认为这是一个好的解决方案 –