如何避免普通文件中的密钥?

时间:2012-02-21 09:40:43

标签: javascript mysql node.js

我正在使用Node.js和Mysql,我想加密我的数据库上的数据。 我想知道如何避免将普通密钥存储在易于查找的文件中,执行AES_ENCRYPT(text, key)对我没有意义,因为我传递了一个人可以在服务器上无问题地读取的普通密钥。 / p>

有什么建议吗? 非对称加密?

由于

2 个答案:

答案 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();
});