Tag: 敏感数据

MongoDB和NodeJS中的敏感数据分离 – 通过encryption密钥引用

我目前正在研究一个允许用户保存敏感date的应用程序。 由于它是一个Web应用程序,我们正在使用NodeJS和MongoDB进行持久化。 (顺便说一下,我对Node和NoSQL是全新的) 我们确实有可以存储某种病史的用户。 姓名和电子邮件存储在用户文档中,而其他内容存储在configuration文件中。 为了提高安全性,我想encrypt用户对其个人资料的引用,反之亦然。 目前,我正在使用NodeJS的Crypto库在用户configuration文件中encryption(AES256) user_id引用。 因此,引用不再是一种ObjectID,而是一个string 所以通过直接查看数据库,不可能检查哪个configuration属于哪个用户。 encrypt和decrypt用户id的秘密密钥存储在NodeJS服务器的js文件的某处。 这是一种常见的/好的方法,还是我在做一些完全错误的事情? 有没有更好的方法 – 我读mongoDB不支持任何“内置encryption” 至less,这是en /解密的代码 module.exports = function() { this.encryptionSecret = "ANYSECRET"; this.crypto = require('crypto'); this.algorithm = 'aes256'; this.encrypt = function (key) { var cipher = this.crypto.createCipher(this.algorithm, this.encryptionSecret); var encrypted = cipher.update(""+key, 'utf8', 'hex') + cipher.final('hex'); return encrypted; }; this.decrypt = function (encryptedKey) […]