Node.js:crypto.pbkdf2密码为十六进制
Node.js: crypto.pbkdf2 password to hex
我目前使用以下设置来注册新用户:
// creates a new user
app.post('/users', function(req, res) {
// create new user
var user = new User();
// assign post
user.username = req.body.username;
user.email = req.body.email;
crypto.randomBytes(32, function(err, buf) {
if (err) throw err;
user.salt = buf.toString('hex');
crypto.pbkdf2(req.body.password, user.salt, 25000, 512, function(err, encodedPassword) {
if (err) throw err;
user.password = (encodedPassword.toString('hex')); // this line
user.save(function(err, user) {
if (!err) return res.send(err, 500);
return res.json(user);
});
}.bind(this));
});
});
仔细看一下这条线:
user.password = (encodedPassword.toString('hex'));
这应该将密码字符串(看起来像二进制字符串)编码为十六进制字符串。出于某种原因,这不起作用。
为什么不呢?
旁路:对于salt和密码存储(十六进制、二进制、base64),建议使用什么编码?
如果它已经是一个字符串,那么toString('hex')将不起作用。
我做的是类似Buffer(encodedPassword, 'binary').toString('hex')
的事情。
相关文章:
- 文本框应该只允许十六进制值
- 正在将unicode转换为十六进制
- 在js中将字符串转换为十六进制
- 如何在JavaScript中将数字表示为十六进制
- 带有 TCP/IP 通信的 JavaScript 十六进制代码
- 用Javascript正则表达式过滤十六进制数字
- 如何创建和递增2或3位十六进制数字
- 将html代码转换为十六进制
- 如何检查十六进制颜色是否为“”;太黑”;
- 将十六进制字符串转换为字节数组
- 解码十六进制编码/混淆的javascript
- 如何在HTML5 / javascript中查找十六进制值的特定位或数字
- 节点.js从 UTF8 文件创建十六进制缓冲区
- 从引导程序图标十六进制值输出一个符号
- 将Hsl转换为rgb和十六进制
- javascript:搜索并用不同的颜色代码替换十六进制颜色代码
- JavaScript 中两个十六进制字符串的 XOR
- 在JavaScript/NodeJS中压缩十六进制字符串
- 无需Javascript内置函数即可将十进制转换为十六进制
- Node.js:crypto.pbkdf2密码为十六进制