<分区>
对于我的登录系统,我希望对数据库中的密码进行哈希处理。所以我决定阅读有关散列的知识以及如何做,但不幸的是它对我来说没有任何意义,因为我找不到我想要的例子。
我想要它,以便在创建用户帐户时,对密码进行散列处理并存储在我的数据库中,然后当他们登录时,它对登录密码进行散列处理并使用数据库中的散列密码进行检查。如果这有任何意义,我将不胜感激。
如果您需要我的代码示例或其他内容,请提出,我会将其编辑到我的问题中。
<分区>
对于我的登录系统,我希望对数据库中的密码进行哈希处理。所以我决定阅读有关散列的知识以及如何做,但不幸的是它对我来说没有任何意义,因为我找不到我想要的例子。
我想要它,以便在创建用户帐户时,对密码进行散列处理并存储在我的数据库中,然后当他们登录时,它对登录密码进行散列处理并使用数据库中的散列密码进行检查。如果这有任何意义,我将不胜感激。
如果您需要我的代码示例或其他内容,请提出,我会将其编辑到我的问题中。
最佳答案
您可以使用哈希算法,例如 MD5
、SHA1
、SHA265
、SHA512
...散列密码。例如:
public string Hash(string password)
{
var bytes = new UTF8Encoding().GetBytes(password);
var hashBytes = System.Security.Cryptography.MD5.Create().ComputeHash(bytes);
return Convert.ToBase64String(hashBytes);
}
然后将密码的哈希值存储在数据库中,当你想将输入的密码与数据库存储的值进行比较时,将输入值的哈希值与数据库值进行比较。
编辑
public string Hash(string password)
{
var bytes = new UTF8Encoding().GetBytes(password);
byte[] hashBytes;
using (var algorithm = new System.Security.Cryptography.SHA512Managed())
{
hashBytes = algorithm.ComputeHash(bytes);
}
return Convert.ToBase64String(hashBytes);
}
这只是一个简单的示例:在真实场景中,您也应该使用 salt
作为哈希值。您可以阅读更多关于盐腌的信息 here .
关于c# - 生成密码哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33546552/