我使用本机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中以二进制形式存储的优点是什么?我应该选择哪一个?如果字符串比以二进制形式存储更好,那么如何确保将这两个内容存储为数据库中的字符串?