Мы взяли на себя какой-то старый кусок кода, который мы пытаемся переместить на веб-API. Существующий код использовал ASP.Net MVC, Kendo, Typescript и т. Д. И был полон беспорядка без комментариев и документации.
По большей части мы можем это исправить. Но мы застряли в попытке выяснить, какой метод используется для шифрования существующего пароля. В коде есть строка с надписью Membership.ValidateUser(model.UserName, model.Password)
для проверки пользователя.
Насколько я понимаю, это использует встроенный поставщик членства ASP.Net. Но в этом случае в БД должны быть таблицы с суффиксом aspnet_
. Например. aspnet_Users
, aspnet_Profiles
и т. Д. Но в копии рабочей базы данных эти таблицы не существуют.
Вместо этого есть отдельная схема с именем acgsec
с таблицами, подобными acgsec.UserPassword
.
Мое требование - просто выяснить, какой алгоритм используется для создания хеша и соли, хранящихся в текущей БД. Конечно, у меня есть и входные данные для некоторых конкретных пользователей.
Если я могу выяснить, как зашифрован текущий пароль, я могу сам создать класс проверки логина, который использует то же шифрование, тем самым избавившись от существующей реализации поставщика членства.
Мне было интересно, есть ли способ найти алгоритм, если у меня есть входное значение, хэш и соль. Или, если я смогу узнать acgsec
создатель схемы. Я попытался найти имя схемы в поисковой системе и ничего не смог найти.