asp.net mvc-使用Nhibernate存储Sha256哈希密码



我有一个简单的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存储哈希密码的最佳实践吗。(该应用程序同时支持两个dbs)

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

相关内容

  • 没有找到相关文章

最新更新