在mongodb中存储盐和密码哈希值

时间:2013-08-22 08:17:35

标签: string node.js mongodb binary node-mongodb-native

我使用本机mongodb-driver进行数据库的插入和读取。我正在使用以下方法创建salt和密码哈希。

var salt;
var passwordHash;

crypto.randomBytes(256, function(ex, buf) {
  if (ex) throw ex;
  console.log('Have %d bytes of random data: %s', buf.length, buf);
  salt = buf;
});

crypto.pbkdf2(user.password, buf, 10000, 128, function(err, hashedPass){
    if (err) throw err;
    passwordHash = hashesPass;
});

现在在另一个函数中,我将这个salt和passwordHash存储到数据库中,就像这样

db.collection('user').insert(
    {
       salt: salt
     , hashedPassword : passwordHash
    }, {w:1}, callback);

salt和hashedPassword在mongo-db数据库中存储为二进制类型我想知道它存储在二进制文件而不是字符串中是否很好? 我的关注是由于node.js声明二进制数据正在被折旧,所以不推荐

如果存在mongodb中的字符串存在的任何优点和优点,那么在mongodb中以二进制形式存储的优点是什么?我应该选择哪一个?如果字符串比以二进制形式存储更好,那么如何确保将这两个内容存储为数据库中的字符串?

0 个答案:

没有答案