Настройка шифрования данных в ModX
Добрый день! Решаю свои повседневные дела, столкнулся с такой проблемой, что шифрование данных в MODX Revolution проходит в формате PBKDF2, о чем наглядно сообщает документация файла changelog.txt:
[#325] Allow configurable user password hashing with PBKDF2 default implementation
Написал такой простой сниппет по установке пароля пользователю:
$q = $modx->newQuery('modUser');
$q->innerJoin('modUserProfile', 'Profile');
$q->where(array('modUser.username' => $email, 'OR:Profile.email:=' => $email));
$user = $modx->getObject('modUser', $q);
$user->set('password', '0987654321');
$user->save();
В результате получаю в значении password такую абракадабру: JUeI95e5CPSLCjPEbmXsCqf0U1yUxDXipbp0OMerguc=
В Интернете нарыл такое решение шифрования:
<?php
$password = "password";
$iterations = 1000;
// Generate a random IV using mcrypt_create_iv(),
// openssl_random_pseudo_bytes() or another suitable source of randomness
$salt = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM);
$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 20);
echo $hash;
?>
Однако в том примере подставляют значения "соли", количество итераций и другие опции, в моем же сниппете все скрыто и непонятно как шифруется.
Хотелось бы знать две вещи:
1. Как поменять в настройках Modx режим шифрования на более привычный, например, на md5?
2. Если менять нежелательно, то можно ли тогда с помощью стандартных функций и возможностей ModX зашифровать свое значение, чтобы получить идентичный результат, как в моем сниппете?
Нужно это для следующих целей: делаю аутентификацию пароля пользователя, при сохранении получаю в формате PBKDF2 пароль, а преобразовать своими методами такой пароль из формы в PBKDF2 не могу, чтобы проверить подлинность пароля. Как решить эту ситуацию?