Я ищу проверенный алгоритм хэширования FIPS для хранения паролей в базе данных.Я использовал следующий код, но все равно получаю сообщение об ошибке
Эта реализация не является частью проверенных криптографических алгоритмов платформы Windows FIPS.
Добавление следующей строки в web.config в разделе system.web
<machineKey validationKey="AutoGenerate,IsolateApps" ecryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>
решил мою проблему
Обычный SHA-1 не должен использоваться для хранения паролей. PBKDF2 - хороший выбор. В .net вы можете использовать его с классом Rfc2898DeriveBytes. Смотри https://security.stackexchange.com/questions/2131/reference-implementation-of-c-password-hashing-and-verification/2136#2136
Rfc2898DeriveBytes
Возможно, вам потребуется изменить базовую хеш-функцию на SHA-256. Из того, что я помню, SHA-1 не одобрен NIST.
Я ищу проверенный алгоритм хэширования FIPS для хранения паролей в базе данных.
Используйте один из хэшей из семейства SHA-2. Например, SHA256.
Не используйте управляемый класс - они не проверены FIPS. Вместо этого используйте SHA256CryptoServiceProvider и друзей.
SHA256CryptoServiceProvider