2008-11-11 5 views
2

Я ищу исходный код для провайдера членства .net, и это sqlmembershipprovider.cs есть вызовы EncryptPassword и DecryptPassword, но я не вижу метода в любом месте источника.Какой алгоритм шифрования использует поставщик членства .net?

Какой алгоритм они используют? Разве это не источник для выпуска?

+0

Не переходите к кодированию с зависимостью внедрения MS от EP и DP. Он может измениться в следующем пакете обновления. – Will 2008-11-11 15:00:34

ответ

3

SqlMembershipProvider происходит от MembershipProvider, из которого он наследует EncryptPassword() и DecryptPassword().

Если смотреть на код с рефлектором, он выглядит как DES, если ключ имеет длину 8 байтов и AES (Rijndael) в противном случае.

0

SqlMembershipProvider использует System.Web.Security.MembershipProvider как базовый класс. В базовом классе вызывается методы EncryptPassword и DecryptPassword.

Запустите .NET Reflector и укажите его на System.Web.Security.MembershipProvider, и вы увидите, как они это делают.

0

Хотя код шифрования является «общедоступным», шифрование по умолчанию поставщика членства основано на уникальном машинном ключе.

0

Довольно уверены, что база Расшифровать/EncryptPassword использовать стандартную реализацию .NET-AES, возможно, с помощью ключа, определенного где-то, вероятно, машиной конкретной

См AesManaged класса.

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