2014-04-16 2 views
-1

모듈을 사용하여 데이터를 암호화/해독합니다.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"값을 해독하려면 해독 함수가 잘못된 최종 블록 길이에 대한 오류를 던지기 때문에 모든 응용 프로그램이 충돌합니다.

그럼 어떻게하면 오류가있을 때 내 응용 프로그램이 모두 손상되는 것을 막을 수 있습니까?

답변

-1

process.on('uncaughtException', function(error) { 
    console.log(error.stack); 
}); 

NodeJS docs

+0

감사합니다. 그것을 내 app.js에 어디에 둘 필요가 있습니까? –

+0

시작 스크립트의 어디에서나이를 수행해야합니다. 바닥에 두는 것을 권장합니다. 그런 식으로 계속 스크롤하지 않아도됩니다. – leko

+0

uncaughtException은 예외 처리를위한 매우 조잡한 메커니즘이므로 나중에 제거 될 수 있습니다. 나는 그것이 좋은 해결책이라고 생각하지 않는다. –

0

랩 시도-catch 블록에 문제가 함수 호출에서 촬영 작동합니다.

관련 문제