Реализовать расшифровку Asp. NET провайдера членства в. NET Core - PullRequest
0 голосов
/ 28 мая 2020

Итак, вот моя проблема: в старой системе ASP. NET 4.5 мы широко использовали MembershipProvider EncrypytPassword и DecrypytPassword . Не для настоящих паролей, они хешируются. Очевидно, он использует DecryptionKey в разделе Machinekey моего файла web.config. Работает нормально. Зашифрованная информация хранится в БД и может быть расшифрована без проблем.

Теперь нам нужно прочитать их из БД и расшифровать в приложении . NET core . Очевидно, у меня нет доступа к ASP. NET MembershipProvider для расшифровки. Поэтому я подумал, что это должно быть очень просто: у меня есть ключ дешифрования (шестнадцатеричная строка, хранящаяся в нашем web.config), я знаю, что алгоритм - AES (опять же, из раздела машинных ключей), и я смогу расшифровать их сам.

Но что бы я ни делал, не работает. Я играл с заполнением, IV, режимом шифрования, размером ключа. Ничего не работает.

Я даже декомпилировал System.Web.dll и прочитал код для EncryptOrDecryptData метода, который за это отвечает. Кажется, невозможно понять, что происходит.

Как вы думаете, я могу воспроизвести их метод дешифрования? Зная, что единственное, что было упомянуто в web.config, было следующее:

machineKey decryption="AES" decryptionKey="D8E7396EEA4.........." (48 hex characters).

FYI, я могу использовать только это в любом консольном приложении. NET для расшифровки данных, потому что я могу добавить ссылку в System.Web.dll и используйте метод DecryptPassword . Это означает, что я смогу достичь этого и в. NET Core, просто имея ключ дешифрования. Но как?

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