2011-08-05 2 views
39

암호를 해독 할 필요가없는 암호와 데이터에 대해 bcrypt를 사용하고 있습니다.node.js : 암호 해독해야하는 데이터를 암호화 하시겠습니까?

다른 사용자 정보를 보호하려면 어떻게해야합니까? 이 예제에서는 누군가가 db를 얻는 경우를 대비해 사용자의 실제 이름이 일반 텍스트가되는 것을 원하지 않는다고 가정합니다.

이것은 다소 민감한 데이터이지만 수시로 호출하여 일반 텍스트로 표시해야합니다. 이 작업을 수행하는 간단한 방법이 있습니까?

+4

상황을,하지만 당신은 또한 디스크에 저장하고 암호화 키를 자주 꽤 인위적인입니다. 이걸 생각해 봤어? –

+24

인터넷은 매우 영리하고 도움이됩니다. 사람들이 질문에 대답하거나 실질적인 지침을 제공하기보다는 당신의 접근 방식을 모욕하여 자신의 정보를 시연하기로 결정했을 때 좋습니다. – Secesh

답변

104

당신은 crypto 모듈을 사용할 수 있습니다 : 공격자가 데이터베이스를 얻을 수있는

var crypto = require('crypto'); 
var assert = require('assert'); 

var algorithm = 'aes256'; // or any other algorithm supported by OpenSSL 
var key = 'password'; 
var text = 'I love kittens'; 

var cipher = crypto.createCipher(algorithm, key); 
var encrypted = cipher.update(text, 'utf8', 'hex') + cipher.final('hex'); 
var decipher = crypto.createDecipher(algorithm, key); 
var decrypted = decipher.update(encrypted, 'hex', 'utf8') + decipher.final('utf8'); 

assert.equal(decrypted, text); 
+0

더 안전하게 만들기 위해 IV를 추가 하시겠습니까? 그렇다면 어떻게 '암호'로이 작업을 수행 할 수 있습니까? – Fizzix