所以我正在加密数据库中的字段,但我认为我不能加密用户的
username
或
email
因为我使用这些字段来查找用户。我可以对它们进行散列,但是由于我不认为我可以对每个用户名/电子邮件使用唯一的salt,所以有些人可以使用rainbow表来查找隐藏的用户名/电子邮件。
我想不用加密就可以了?我想使网站尽可能安全。散列它们有意义吗?我可以通过他们的
_id
而不是
用户名
/
电子邮件
,但我不会让他们
_身份证
直到我找到用户。
我目前正在做的是:
const user = await new db.userModel({
email: email,
username: username,
stuff: cryptr.encrypt(stuff),
});
////
const user = await db.userModel.findOne({
email: email
}).exec();
编辑:我想散列是没有意义的,因为我不能取消散列用户名/电子邮件。不知道我在想什么。