모듈을 사용하여 데이터를 암호화/해독합니다.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()를 사용했다를 제외하고, 그렇지 않으면 충돌 ..).문제는 해독에 있습니다. 암호를 해독 할 데이터를 제어 할 권한이 없습니다 (쿠키에서 가져 오는 것입니다).
예를 들어 "10"값을 해독하려면 해독 함수가 잘못된 최종 블록 길이에 대한 오류를 던지기 때문에 모든 응용 프로그램이 충돌합니다.
그럼 어떻게하면 오류가있을 때 내 응용 프로그램이 모두 손상되는 것을 막을 수 있습니까?
감사합니다. 그것을 내 app.js에 어디에 둘 필요가 있습니까? –
시작 스크립트의 어디에서나이를 수행해야합니다. 바닥에 두는 것을 권장합니다. 그런 식으로 계속 스크롤하지 않아도됩니다. – leko
uncaughtException은 예외 처리를위한 매우 조잡한 메커니즘이므로 나중에 제거 될 수 있습니다. 나는 그것이 좋은 해결책이라고 생각하지 않는다. –