Расшифровка пароля ASPNET_Membership - PullRequest
1 голос
/ 11 января 2012

Я пытаюсь расшифровать свой пароль, хранящийся в aspnet_membership таблице ...

Я использую следующий код,

Dim encodedPassword() As Byte = System.Text.Encoding.UTF8.GetBytes(password)
encodedPassword = MyBase.EncryptPassword(encodedPassword)
Dim decryptedPassword() As Byte = MyBase.DecryptPassword(encodedPassword)
If (decryptedPassword IsNot Nothing) Then
  Return System.Text.Encoding.UTF8.GetString(decryptedPassword, 0, decryptedPassword.Length)
End If

но в строке DecryptPassword(encodedPassword) ошибка отображается как

"Длина данных для расшифровки недопустима."

1 Ответ

1 голос
/ 11 января 2012

Я думаю, что вам нужно Base64 Сначала декодируйте его:

byte[] encodedPassword = Convert.FromBase64String(pass);
byte[] bytes = this.DecryptPassword(encodedPassword);

или в VB.NET:

Dim encodedPassword As Byte() = Convert.FromBase64String(pass)
Dim bytes As Byte() = Me.DecryptPassword(encodedPassword)

Редактировать: Как указал @Erangaэто при условии, что используемый MembershipProvider фактически поддерживает дешифрование, а для поставщика по умолчанию параметр passwordFormat контролирует, является ли он «хэшированным», «зашифрованным» или «простым».По умолчанию параметр «хэширован», что означает, что расшифровка невозможна.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...