【发布时间】:2014-05-31 06:36:01
【问题描述】:
我使用一个模块来加密/解密数据。
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”,那么我的所有应用程序都会崩溃,因为解密函数会抛出关于错误最终块长度的错误。
那么如何防止我的模块在出现错误时崩溃我的所有应用程序?
【问题讨论】:
标签: node.js error-handling module