如何为您的NodeJS / express应用程序使用加密文件作为数据库而不是MongoDB或MySQL?
您将为您的数据库提供JSON格式,并且会有定期备份的服务。
看起来像这样
{
"info": {
"version": "0.0.1",
"name": "Give your DB a name"
},
"data": {
}
}
并有像
这样的方法myDB.info() // => {"version" : "0.0.2", "name": "demo DB"}
myDB.get('foo'); // => 'bar'
myDB.set('foo', 'bar');
myDB.delete(key);
myDB.backup(function(err) {
if(err) throw err;
else console.log('DB backed up at %s', new Date().toString());
});
myDB.search('stats.comments_lookup[{stats.page.id}]', function(res) {
console.log("search result: ", res);
});
我看到这个名为express-db的npm包,但它已经过时而没有维护。有没有更好的选择或方式呢?
答案 0 :(得分:1)
不使用加密的数据库或文件,只需加密数据并将其存储在数据库中。
您可以使用crypto-js module
var CryptoJS = require("crypto-js");
// Encryption
var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123');
//Store it in any database
//Retrieve from database
// Decryption
var bytes = CryptoJS.AES.decrypt(ciphertext.toString(), 'secret key 123');
var plaintext = bytes.toString(CryptoJS.enc.Utf8);
console.log(plaintext);
<强>优势强>
在大多数情况下,您并不需要加密数据集中的整个数据。因此,只需加密敏感数据并将其他数据存储为纯文本。由于加密实际上是CPU密集型过程,因此您的应用程序运行速度会更快。