ASP.NET MembershipProvider шифрование / дешифрование - PullRequest
5 голосов
/ 15 февраля 2011

У меня есть несколько вопросов о MembershipProvider в .Net, на которые я не смог найти четких ответов.

  • Какой тип шифрования используется, AES?
  • Метод EncryptPassword , может ли он обрабатывать любую соль, или я просто добавляю ее перед передачей?
  • Метод DecryptPassword - вы действительно можете расшифровать пароль? Разве это не плохая практика, чтобы быть в состоянии сделать?

Спасибо за ввод!

1 Ответ

4 голосов
/ 16 февраля 2011

добавить элемент для поставщиков для членства (схема настроек ASP.NET)

  • атрибут enablePasswordRetrieval : "Указывает, поддерживает ли экземпляр поставщика членства получение пароляЕсли установлено значение true, экземпляр поставщика членства поддерживает получение пароля. Значение по умолчанию - false как для поставщиков SQL, так и для поставщиков Active Directory. "
  • атрибут passwordFormat :" Одно из значений MembershipPasswordFormat, которое указывает форматдля хранения паролей в хранилище данных о членстве. По умолчанию используется Hashed. "
    • Хэширование : «Пароли шифруются односторонне с использованием алгоритма хеширования SHA1. Вы можете указать алгоритм хеширования, отличный от алгоритма SHA1, с помощью атрибута hashAlgorithmType."
    • Зашифровано : «Зашифрованные пароли шифруются с использованием настроек шифрования, определенных конфигурацией элемента machineKey Element (схема настроек ASP.NET)."

Итак,по умолчанию SqlMembershipProvider использует хешированный (односторонний) пароль, который хешируется с помощью SHA1.Хэширование паролей не использует методы EncryptPassword / DecryptPasswords, но нет, вы не можете вручную передать соли для Шифрования / Кодирования паролей (это солит для вас).

...