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

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

fbae378704687625a410223a61c66eb1: VM6DwmVWHTwpquDq51ZXjWWADCIc93MR

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

Приветствие

8
задан Scott Arciszewski 28 May 2019 в 20:56
поделиться

3 ответа

$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword("yourpassword", $salt);
$password = $crypt.':'.$salt;

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

РЕДАКТИРОВАТЬ: Я забыл упомянуть, что вам нужно чтобы включить эту строку перед вызовом JUserHelper:

jimport ('joomla.user.helper');

12
ответ дан 5 December 2019 в 06:22
поделиться

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

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

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

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

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

Вот пример:

<?php
$password = 'apple';

if (md5($password) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo "Password correct";
}
?>
2
ответ дан 5 December 2019 в 06:22
поделиться
  //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 ().

-1
ответ дан 5 December 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: