Скрипт шифрования паролей в moodle

Скрипт шифрования паролей в moodle

от Макс Сопин -
Количество ответов: 10
Подскажите пожалуйста где лежит скрип который шифрует пароли перед записью их в БД. Вообще задача такая при регистрации на одном сайте, добавляется пользователь ещё и на другом moodle-сайте с там же логином и паролем.
В ответ на Макс Сопин

Re: Скрипт шифрования паролей в moodle

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода
Пароли записываются в UTF8 и вычисляется md5-сумма. Вот и весь секретный алгоритм.
Реализовано в lib/moodlelib.php в update_internal_user_password и hash_internal_user_password
В ответ на Макс Сопин

Re: Скрипт шифрования паролей в moodle

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода
Пароли записываются в UTF8 и вычисляется md5-сумма. Вот и весь секретный алгоритм.
Реализовано в lib/moodlelib.php в update_internal_user_password и hash_internal_user_password
В ответ на Макс Сопин

Re: Скрипт шифрования паролей в moodle

от Albert Oganesyan -

подскажите пожалуйста, может я что то не правильно понял, в итоге пароль шифруется функцией md5?

я пишу программу, которая работает с базой moodle, нужна авторизация, делаю так

    $password = hash_internal_user_password($_POST['password']);


потом сравниваю с паролем в базе данных, но там он не такой, как получается у меня при шифровании данной функцией и вход не производится, может нужно ещё что то добавить?

В ответ на Albert Oganesyan

Re: Скрипт шифрования паролей в moodle

от Vadim Tabunshchik -
Изображение пользователя Developers

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

Потому что сейчас в Moodle ещё и salt из config.php добавляется к хешу md5 пароля.

В ответ на Vadim Tabunshchik

Re: Скрипт шифрования паролей в moodle

от Albert Oganesyan -

спасибо, всё получилось, в конец строки с паролем добавил строку $CFG->passwordsaltmain = '....';
из файла config.php

результат шифрования функцией md5() совпал с хранимым в базе данных мудла

В ответ на Vadim Tabunshchik

Re: Скрипт шифрования паролей в moodle

от Alexey Skomorokh -

Здравствуйте,

Потому что сейчас в Moodle ещё и salt из config.php добавляется к хешу md5 пароля.

Говоря "сейчас" вы имеете в виду 2 версию или все текущие версии?

Меня это заинтересовало в аспекте переноса пользователей из версии 2,2 в версию 1,9. Базы разные и прямой перенос хешей положительного результата не дал.

В ответ на Alexey Skomorokh

Re: Скрипт шифрования паролей в moodle

от Александр Анисимов -
Изображение пользователя Майнтейнер перевода Изображение пользователя Эксперт по Moodle

Хеширование паролей по md5 с зашумлением SALT используется с версии 1.9.7.

Попробуйте добавить в config.php после

$CFG->passwordsaltmain  = 'какой-то набор символов';

строку

$CFG->passwordsaltalt1 = 'старый набор из старого config.php';

В ответ на Albert Oganesyan

Re: Скрипт шифрования паролей в moodle

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

Воспользуйтесь функцией validate_internal_user_password или хотя бы посмотрите как она работает. Проверьте кодировку, в которой получаете пароль - должна быть utf-8.