我正在使用Node.js和Mysql,我想加密我的数据库上的数据。
我想知道如何避免将普通密钥存储在易于查找的文件中,执行AES_ENCRYPT(text, key)
对我没有意义,因为我传递了一个人可以在服务器上无问题地读取的普通密钥。 / p>
有什么建议吗? 非对称加密?
由于
答案 0 :(得分:0)
我会在将任何数据发送到MySQL服务器之前对其进行加密,以防止日志中出现任何未加密的数据。以下信息详细说明了Node.js加密模块,该模块应该根据需要进行操作。这样,离开服务器的所有内容都是加密的字符串,如果没有密钥则使用的字符串就少得多。
Node.js加密模块docs:http://nodejs.org/docs/latest/api/crypto.html
答案 1 :(得分:0)
您可以使用readline
模块让用户在启动时提供密钥:
您的应用:
module.exports = function(key) {
var app = // ...
}
您的启动脚本:
var readline = require('readline')
, interface = readline.createInterface(process.stdin, process.stdout, null);
interface.question("Please supply a key", function(key) {
// load your app, supplying the key
require("./app")(key);
interface.close();
process.stdin.destroy();
});