当前位置: 首页 > 知识库问答 >
问题:

数据库密码没有散列?

长孙修远
2023-03-14

我试图在我的datacontracts中对我的datamembers密码进行哈希/盐析,但当我添加一个新的学生,然后获取该学生集合时,密码字段尚未进行哈希/盐析,它会返回我键入的内容?

    public void AddStudent(Student student)
    {

        student.StudentID = (++eCount).ToString();
        byte[] passwordHash = Hash(student.Password, GenerateSalt());

        student.TimeAdded = DateTime.Now;
        students.Add(student);
    }

有人能帮我修一下吗?

共有2个答案

艾骏
2023-03-14

您可以简单地将此添加到原始问题中,但这里还有一些代码

[DataContract(Name="Student")]
public class Student
{
    [DataMember(Name = "StudentID")]
    public string StudentID { get; set; }
    [DataMember(Name = "FirstName")]
    public string FirstName { get; set; }
    [DataMember(Name = "LastName")]
    public string LastName { get; set; }
    // local non public cache
    private byte[] _password;
    [DataMember(Name = "Password")]
    public byte[] Password {
        get { return _password; }
        set {
            this.Salt = GenerateSalt();
            this._password = Hash(value, this.Salt);
        }
    };
    [DataMember(Name = "Salt")]
    public byte[] Salt;

    // ...
衡修洁
2023-03-14

您应该将哈希密码分配给学生密码,然后添加学生密码。

public void AddStudent(Student student)
{
    student.StudentID = (++eCount).ToString();
    byte[] passwordHash = Hash(student.Password, GenerateSalt());

    StringBuilder stringBuilder = new StringBuilder();

    foreach(byte b in passwordHash){
        stringBuilder.AppendFormat("{0:X2}", b);
    }

    student.TimeAdded = DateTime.Now;
    student.Password= stringBuilder.ToString();;
    students.Add(student);
}
 类似资料:
  • 我试图修改代码以包含HASH_PASSWORD,但我不相信我做得对。

  • 问题内容: 我正在尝试更改MySql根密码。 我所做的如下。 安装MySql-5.7.6〜.dmg(社区服务器)和工作台。 在OSX系统首选项上关闭服务器。 使用控制台访问MySql。该命令是 执行并得到一条错误消息-> 。 仅供参考,我做到了。所以我确实在用户表上选择了查询,发现密码列实际上不存在。 这很奇怪。原始用户表是否可能没有密码列? 如何更改不存在的密码? 谢谢你的回答:D 问题答案:

  • 我正在尝试更改MySql根密码。 下面是我所做的。 安装mysql-5.7.6~.dmg(社区服务器)和工作台。 关闭OSX系统首选项上的服务器。 使用控制台访问MySql。命令为 执行并收到错误消息-->中的列“password”未知。 另外,我确实。所以我确实在用户表上选择了查询,发现密码列实际上并不存在。 这很奇怪。原始用户表是否没有密码列? 我如何更改密码,它不存在? 谢谢你的回答:D

  • Querying All Users # pwd_getpwall.py import pwd import operator # Load all of the user data, sorted by username all_user_data = pwd.getpwall() interesting_users = sorted( (u for u in all_user_dat

  • 我一直在阅读OWASP10,我遇到了存储信息的最佳实践。咸杂碎。在这里,您为每个密码生成一个随机的salt,并对其进行梳理、散列和存储。我的疑问是,如果salt是随机生成的,当用户键入密码时,如何对密码进行身份验证?salt是否与用户名一起保存?如果是这样,这种做法仍然是脆弱的。或者他们是怎么做到的?

  • 我正在尝试将用户从旧的Drupal6 CMS迁移到KeyCloak。我想迁移用户与他们的旧密码,然后分配一个“更新密码”要求的行动到他们的个人资料。 然而,迁移密码似乎有问题,因为我只能以散列形式访问它们。 null 有没有人有幸让这个功能发挥作用?