MembershipProvider.GetPassword алгоритм - PullRequest
1 голос
/ 01 декабря 2010

Мы конвертируем сайт ASP (используя DotNetNuke) в новый сайт PHP.Единственное, что у нас есть, это полный экспорт существующей базы данных.Одна из таблиц называется «aspnet_Membership» и содержит следующие поля:

  • Пароль (выглядит как base64)
  • PasswordFormat (всегда значение 2)
  • PasswordSalt (выглядит как base64)
  • PasswordQuestion (всегда пусто)
  • PasswordAnswer (всегда пусто)

Мы хотели бы декодировать эти пароли и хешировать их в соответствии с нашей собственной структурой,Из того, что я понимаю из документации .NET, пароли такого типа можно расшифровать.Есть ли алгоритм, который может сделать это, или это сложнее, чем это?Будет ли это возможно, если мы создадим ASP-скрипт на текущем сервере?

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 01 декабря 2010

Я думаю, что 2 означает «Зашифровано», а не «Хешировано» (см. Определение здесь )

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

2 голосов
/ 01 декабря 2010

К сожалению, ваше значение 2 в PasswordFormat говорит нам, что эти пароли хешируются, предположительно с использованием SHA1 (вы можете проверить это в своем файле web.config).Извините, нет способа надежно вернуть исходный пароль.

* редактировать: если, конечно, вы не знаете о конкретной криптографической слабости в конкретной функции хеширования.

...