Сгенерируйте хеш пароля с помощью php
У меня есть БД пользователей и их пароль в зашифрованном виде. Я хочу, чтобы пользователи заходили на сайт, используя имя пользователя и пароль. Для аутентификации мне нужно знать, какой тип шифрования у них, чтобы я мог сопоставить введенный пароль с сохраненным паролем. Я перепробовал много алгоритмов, но я не могу тренировать механизм шифрования. вот тестовый пример
оригинальный пароль: Элвин
Пароль в БД:f9b0213127225c1c74d6662dee8acca297eff9e0
Шифрование пароля: sha1_v2.4.
соль: 9j1jyse241v7cw0s8okkssgg448wgcogsggoww0
Что я хочу сделать, это создать пароль в БД из оригинального пароля.
Любые подсказки о том, как преобразовать оригинальный пароль в пароль в БД
PS таблица была создана Silverstripe CMS
РЕДАКТИРОВАТЬ:
Мы больше не используем CMS Silverstripe и преобразуем наш сайт в мобильное приложение. Так что использование Silverstripe или его функции не вариант. Однако мы используем таблицу участников со всеми данными участника, включая информацию об аутентификации.
1 ответ
В комментариях ОП много ненависти. Но это неправильно: OP не пытается ничего расшифровать (и объяснил это лучше на форуме: http://www.silverstripe.org/community/forums/migrating-a-site-to-silverstripe/show/101337)
Короче говоря, пытается аутентифицировать пользователя из внешнего источника, используя базу данных SilverStripe (поэтому прямое использование класса Member - это не вещь).
Чтобы предоставить фактический ответ:
Метод шифрования хранится в таблице Member, которая по умолчанию называется "blowfish", и может изменяться для каждого пользователя. Вам нужно три поля данных:
- Member.PasswordEncryption
- Member.Salt
- Member.Password
Первый определяет, как использовать второй, который затем позволяет рассчитать третий (и, следовательно, проверить).
Разумно стандартные вещи. Смотрите классы, определенные здесь, для более подробной / конкретной информации (см. "Прямые известные подклассы"): http://api.silverstripe.org/3.1/class-PasswordEncryptor.html