2011-08-05 175 views
39

我们使用bcrypt获取永不需要解密的密码和数据。node.js:加密需要解密的数据?

该怎么做才能保护其他用户信息。对于这个例子,我们可以说我们不希望用户真实姓名是纯文本的,以防有人获得数据库。

这是一些敏感的数据,但也需要不时调用并以纯文本显示。有没有简单的方法来做到这一点?

+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来使它更安全吗?如果是这样,用'crypto'怎么做? – Fizzix