【发布时间】:2013-06-18 21:33:31
【问题描述】:
我有一个包含用户名、散列密码及其盐的表,现在在我的应用程序中,我想验证下面带有散列的纯密码是我尝试过的,但不会生成相同的散列,请建议我该如何解决这个问题问题。
byte[] bIn = Encoding.Unicode.GetBytes(Password);
byte[] bSalt = Convert.FromBase64String(SaltValue);
byte[] bAll = new byte[bSalt.Length + bIn.Length];
Buffer.BlockCopy(bSalt, 0, bAll, 0, bSalt.Length);
Buffer.BlockCopy(bIn, 0, bAll, bSalt.Length, bIn.Length);
HMACSHA256 s = new HMACSHA256();
return Convert.ToBase64String(s.ComputeHash(bAll));
【问题讨论】:
-
只需使用与最初将哈希/盐存储在数据库中时完全相同的方法。