首先,什么是生成密钥的好方法?我应该在键盘上打很多随机键以产生一个,但是对此必须有更好的解决方案。解释生成一个很好的密钥的方法。
其次,什么是存储密钥的好方法?我可以在应用程序配置中编写密钥,但这意味着对源代码的妥协将损害整个系统。将密钥存储在Node.js Express应用中的好方法是什么?
要以编程方式生成秘密,可以使用节点的crypto.randomBytes()
var crypto = require('crypto');
var jwt = require('jsonwebtoken');
crypto.randomBytes(256, function(ex, buf) {
if (ex) throw ex;
var token = jwt.sign({foo: 'bar'}, buf);
var decoded = jwt.verify(token, buf);
});
至于存储它,您是绝对正确的,绝对不应在您的源代码管理中存储秘密。更好的方法是从环境变量(例如)加载此类敏感信息process.env.MY_SECRET
。
我见过的另一种不太常见的模式是从与代码分开存储的文件中加载机密。例如,您可以让您的节点应用程序查找JSON文件~/.myapp/secrets.json
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句