【问题标题】:Storing Sha256 Hashed Passwords with Nhibernate使用 Nhibernate 存储 Sha256 哈希密码
【发布时间】:2011-06-14 10:05:04
【问题描述】:

我有一个简单的 web 应用程序,它有一个登录页面,前端域有一个简单的模型:

string username {get;set;}
string password {get;set;}

但是在发送到数据域对象之前,它是用 sha256 加密的,原来数据域是:

string username {get;set;}
string password {get;set;}

所以我会从 ui 中获取密码,然后使用 Encoding.GetString() 方法对其进行加密,然后取回一个字符串以进行持久化。但是,当我尝试保留数据时,它似乎只是给出了一个异常,我认为这是由于字符串中的字符无效。

环顾四周后,有些人建议将其存储为 varbinary(32) 并在数据层中使用 byte[] 密码 {get;set;},但是我无法让 Nhibernate 正确映射它。

所以谁能告诉我使用 Nhibernate 和 SqlServer 或 MySql 存储散列密码的最佳实践。 (该应用支持两种数据库)

【问题讨论】:

    标签: asp.net-mvc nhibernate passwords hash


    【解决方案1】:

    您不应在 SHA 值上使用Encoding.GetString(),因为它会生成可能无法正确存储的文本,或者更糟的是,会出现异常。而是使用 Convert.ToBase64String 之类的东西。

    【讨论】:

    • 我认为,正如我在上面提到的那样,它不存储。因此,关于处理这些哈希的最佳实践是什么的问题......
    猜你喜欢
    • 2015-10-07
    • 1970-01-01
    • 2013-09-11
    • 2016-07-26
    • 2017-02-13
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多