我们正在使用bcrypt来存储不需要解密的密码和数据。
应该采取什么措施来保护其他这样做的用户信息。对于此示例,假设我们不希望用户的真实姓名采用纯文本格式,以防有人获取数据库。
这是一些敏感数据,但还需要不时调用并以纯文本显示。有没有简单的方法可以做到这一点?
您可以使用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);
编辑
现在 createCipher 和 createDecipher 已被弃用,而不是使用 createCipheriv 和 createDecipheriv