Безопасно ли хеширование идентификационных данных Asp.net?

Я ссылался на следующие сайты для реализации хеширования Rijndael и Asp.net в следующем URL.

  1. Rijndael - Как сгенерировать Rijndael KEY и IV с помощью ключевой фразы?
  2. Хэширование Asp.net - ASP.NET Identity default Password Hasher, как это работает и безопасно ли это?

В обеих реализациях следующее используется для получения случайных байтов для пароля.Rijndael

Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(password, SALT);

Asp.net Хеширование идентичности

Rfc2898DeriveBytes bytes = new Rfc2898DeriveBytes(providedPassword, salt, HasingIterationsCount)

После приведенного выше кода RijnDael применяет шифрование для возвращенных байтов. Но идентичность asp.net копирует результат как он есть с массивом соли байта и возвращает хешированные ключи.

Здесь у меня была путаница. Для хеширования идентификационных данных RijnDael и Asp.net используется один и тот же Rfc2898DeriveBytes.

Когда RijnDael может расшифровать зашифрованные ключи (что делается с помощью Rfc2898DeriveBytes), почему мы можем расшифровать хешированные ключи Asp.net Identity?

Есть ли возможность сделать это? Защищена ли личность Asp.net?

1 ответ

Решение

Да, метод хеширования паролей в ASP.NET безопасен.

В приведенном вами примере пользователь использует метод шифрования, известный как Advanced Encryption Standard (AES, также известный как Rijndael). Вот почему секрет может быть расшифрован.

Пользователь использует только Rfc2898DeriveBytes класс для того, чтобы получить ключ и вектор инициализации.

Класс не используется для хеширования секретного сообщения. Шифрование - это то, что скрывает сообщение.

ASP.NET использует Rfc2898DeriveBytes класс для хэширования пароля. Эта процедура не может быть отменена.

Другие вопросы по тегам