1

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

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;
});

现在在另一个函数中,我将这个盐和密码哈希存储到数据库中,如下所示

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

salt 和 hashedPassword 以二进制类型存储在 mongo-db 数据库中。我想知道它以二进制而不是字符串存储是否很好? 我的担心是由于 node.js 声明二进制数据正在贬值,因此不推荐

如果有的话,在mongodb中以二进制形式存储有什么好处,在mongodb中以字符串形式存储有什么好处。我应该更喜欢哪一个?如果字符串比以二进制存储更好,那么我如何确保将这两件事作为字符串存储在数据库中?

4

0 回答 0