gpt4 book ai didi

c# - 首先使用ef核心代码将密码存储在sql server数据库中

转载 作者:行者123 更新时间:2023-11-30 20:18:03 24 4
gpt4 key购买 nike

我有这个类来代表我的用户:

public class User
{
public int ID {get; set;}
public string UserName {get; set;}
[DataType(DataType.Password)]
public string Password {get; set;}
}

我的注册方法的简化版本如下所示:

[HttpPost]
Register(User newUser)
{
...
_context.add(newUser);
await _context.SaveChangesAsync();
...
}

所以我的问题是:我应该在存储之前从常规字符串更改密码类型吗?如果是这样,什么数据类型?

最佳答案

是是是是

切勿将密码存储为纯文本

虽然其中大部分是安全讨论而不是编程讨论,但您应该只存储安全散列(PBKDF2、Argon 和 Bcrypt 是当前标准)以及用于该散列的唯一盐。

按原样存储它只是要求某人窃取您的数据库并获取所有用户密码,而无需阅读 Password 列(他们可能在其他一百万个地方重复使用了该列)。

尽管将其存储为string 仍然可以。

DataType.Password 只是供您的类的使用者阅读的注释。 (根据 https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.datatype(v=vs.110).aspx )。从存储/数据库的角度来看,它不会增强安全性。

关于c# - 首先使用ef核心代码将密码存储在sql server数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42634489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com