используя php для создания пароля пользователя joomla?

Я пытаюсь создать пользовательский компонент регистрации для Joomla, и мне было интересно, если кто-нибудь знает, как создать правильное шифрование пароля для joomla? Пароли Joomla выглядят следующим образом:

fbae378704687625a410223a61c66eb1: VM6DwmVWHTwpquDq51ZXjWWADCIc93MR

Который я считаю md5 (или что-то) и одностороннее шифрование? Я просто ищу код php-кода для создания того же самого шифрования.

ура

Из joomla Forum это происходит позади:

  1. Создать пароль
  2. Сгенерировать 32 случайных символа
  3. Конкатенация 1 и 2
  4. md5 (3)
  5. магазин 4: 2

Пример:

  1. Создайте пароль – мы будем использовать 'password'
  2. Создайте 32 случайных символа – мы будем использовать 'WnvTroeiBmd5bjGmmsVUnNjppadH7giK'
  3. Конкатенация 1 и 2 – парольWnvTroeiBmd5bjGmmsVUnNjppadH7giK
  4. md5 (3) – 3c57ebfec712312f30c3fd1981979f58
  5. магазин 4: 2 – 3c57ebfec712312f30c3fd1981979f58: WnvTroeiBmd5bjGmmsVUnNjppadH7giK
$salt = JUserHelper::genRandomPassword(32); $crypt = JUserHelper::getCryptedPassword("yourpassword", $salt); $password = $crypt.':'.$salt; 

После немного большего поиска я нашел свой ответ, спасибо, ребята, за вашу помощь 🙂

EDIT: Я забыл упомянуть, что вам нужно включить эту строку перед вызовом JUserHelper:

jimport ( 'joomla.user.helper');

+1 для хранения хэша пароля, а не для хранения самого пароля.

Для защиты от предвыборных атак вы должны использовать случайную соль. Кроме того, вероятно, неплохо использовать более сильный алгоритм хэширования, такой как SHA-256, который, как мне кажется, поддерживается на PHP. Дополнительную информацию см. В разделе Безопасный хеш и соль для паролей PHP .

Я не знаю PHP, но на большинстве языков есть библиотека, поддерживающая md5 и (и другие алгоритмы хэширования). Я нашел это:

 string md5 ( string $str [, bool $raw_output = false ] ) 

Вычисляет хэш MD5 str, используя «RSA Data Security, Inc. MD5 Message-Digest Algorithm» и возвращает этот хеш.

Вот пример:

 <?php $password = 'apple'; if (md5($password) === '1f3870be274f6c49b3e31a0c6728957f') { echo "Password correct"; } ?> 

Вы можете перейти в /libraries/joomla/user и посмотреть функцию bind() в user.php

Здесь будут созданы все пароли пользователей, создающие время регистрации.

  //function to encrypt the string function encode5t($str) { for($i=0; $i<5;$i++) { $str=strrev(base64_encode($str)); //apply base64 first and then reverse the string } return $str; } //function to decrypt the string function decode5t($str) { for($i=0; $i<5;$i++) { $str=base64_decode(strrev($str)); //apply base64 first and then reverse the string} } return $str; } 

В этой функции я зашифровал строку 5 раз с помощью base64_encode и перевернул строку с помощью strrev () и для дешифрования 5 раз, сначала изменив сначала строку, а затем применив base64_decode ().