используя php для создания пароля пользователя joomla? - PullRequest
8 голосов
/ 28 апреля 2010

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

fbae378704687625a410223a61c66eb1: VM6DwmVWHTwpquDq51ZXjWWADCIc93MR

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

Приветствия

Ответы [ 5 ]

12 голосов
/ 26 апреля 2011

От Joomla Forum вот что происходит:

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

Пример:

  1. Сгенерируйте пароль - мы будем использовать «пароль»
  2. Создайте 32 случайных символа - мы будем использовать 'WnvTroeiBmd5bjGmmsVUnNjppadH7giK'
  3. Объединение 1 и 2 - парольWnvTroeiBmd5bjGmmsVUnNjppadH7giK
  4. md5 (3) - 3c57ebfec712312f30c3fd1981979f58
  5. store 4: 2 - 3c57ebfec712312f30c3fd1981979f58: WnvTroeiBmd5bjGmmsVUnNjppadH7giK
12 голосов
/ 28 апреля 2010
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword("yourpassword", $salt);
$password = $crypt.':'.$salt;

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

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

jimport ( 'joomla.user.helper');

2 голосов
/ 28 апреля 2010

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

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

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

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

Вычисляет MD5-хэш str с помощью »RSA Data Security, Inc. Алгоритм дайджеста сообщений MD5 и возвращает этот хэш.

Вот пример:

<?php
$password = 'apple';

if (md5($password) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo "Password correct";
}
?>
1 голос
/ 21 октября 2011

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

Все пароли пользователей, созданные при регистрации, будут здесь.

0 голосов
/ 28 апреля 2010
  //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 ().

...