2013-06-18 4 views
0

У меня есть таблица с именами пользователей, хэшированными паролями и их солями, теперь в моем приложении я хочу проверить простой пароль с хэшем ниже, это то, что я пробовал, но не генерирует тот же хеш , пожалуйста, предложите, как я могу решить эту проблему.Как проверить Hhelcha256 хешированный пароль с солью

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)); 
+0

Просто используйте тот же метод, что и при первоначальном хранении хеша/соли в базе данных. – lightbricko

ответ

2

Вы должны создать один метод для хеширования пароля с солью. Затем используйте этот метод для шифрования начального пароля. Если вы повторно используете этот метод, который проверяет пароль, он всегда будет соответствовать.

Убедитесь, что вы получили правильную соль из своей базы данных для учетной записи.

+0

на самом деле пароль уже хэширован с использованием типа алгоритма ASP.NET MVC 4 по умолчанию, то есть HMACSHA256, теперь я разрабатываю другое приложение, используя ту же базу данных и данные для входа –

+0

Вы должны получить код алгоритма Хеширования. Вероятно, это будет немного отличаться от вашего. Или, может быть, вы можете попросить их предоставить алгоритм в API – JMan

+0

http://stackoverflow.com/questions/1300890/md5-hash-with-salt-for-keeping-password-in-db-in-c-sharp a ссылка на другой алгоритм – JMan

Смежные вопросы