0 Пользователей и 1 Гость просматривают эту тему.
  • 6 Ответов
  • 2279 Просмотров
*

waw555

  • Захожу иногда
  • 111
  • 2 / 0
Здравствуйте, уважаемые форумчане!

Интересует вот такой вопрос, возможно ли сделать регистрацию пользователей не через компонент Joomla.

Регистрация будет производиться совсем из другой программы, реально ли только записать в БД данные о пользователе, логин, пароль, почту, чтобы пользователь смог спокойно зайти на сайт.

Как генерируется пароль в Joomla, проблемы с занесением остальных полей нет, а вот пароль занести в БД не знаю как.

Возможно ли данной функцией зашифровать и расшифровать пароль?

Код
static const Codes64[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/"

public Encode64(s[])
{
new i=0,a=0,x=0,b=0,Result
  for (i=1;i<strlen(s);i++) {
    x = str_to_num(s[i])
    b = b * 256 + x
    a = a + 8
    while (a >= 6) {
      a = a - 6
      x = b / (1 << a)
      b = b % (1 << a)
      Result += Codes64[x + 1]
   }
  }
  if (a > 0) {
    x = b << (6 - a);
    Result += Codes64[x + 1];
 }
 return Result;
}

public Decode64(s[])
{
  new i=0,a=0,x=0,b=0,Result,ch[1]
  for (i = 1; i< strlen(s);i++) {
      for (new index = 0; Codes64[index]; index++)
    if (s[i]==Codes64[index]) {
    x=index-1
    break
    }
    if (x >= 0) {
      b = b * 64 + x
      a = a + 6
      if (a >= 8) {
        a = a - 8
        x = b >> a
        b = b % (1 << a)
        x = x % 256
        Result += num_to_word(x,ch,1)
     }
    }
    else exit;
}
return Result;
}
*

waw555

  • Захожу иногда
  • 111
  • 2 / 0
Расскажите хотя бы как устроена генерация пароля?
*

waw555

  • Захожу иногда
  • 111
  • 2 / 0
Если использовать http://joomlaforum.ru/index.php/topic,54062.0.html внесение данных в БД с использованием md5, будет работать или нет, пробую на хостинге не канает.
*

mohax

  • Давно я тут
  • 901
  • 66 / 3
Если использовать http://joomlaforum.ru/index.php/topic,54062.0.html внесение данных в БД с использованием md5, будет работать или нет, пробую на хостинге не канает.
md5 у меня работал. Скрипт на php парсил данные из Xls-файла и вбивал их в БД. Код предоставить не смогу, осталось на старой работе...
*

waw555

  • Захожу иногда
  • 111
  • 2 / 0
Вот нашел, что отвечает за генерацию пароля, помогите разобрать все по полочкам!

Код
	/**
* Formats a password using the current encryption.
*
* @param   string   $plaintext     The plaintext password to encrypt.
* @param   string   $salt          The salt to use to encrypt the password. []
*                                  If not present, a new salt will be
*                                  generated.
* @param   string   $encryption    The kind of pasword encryption to use.
*                                  Defaults to md5-hex.
* @param   boolean  $show_encrypt  Some password systems prepend the kind of
*                                  encryption to the crypted password ({SHA},
*                                  etc). Defaults to false.
*
* @return  string  The encrypted password.
*
* @since   11.1
*/
public static function getCryptedPassword($plaintext, $salt = '', $encryption = 'md5-hex', $show_encrypt = false)
{
// Get the salt to use.
$salt = JUserHelper::getSalt($encryption, $salt, $plaintext);

// Encrypt the password.
switch ($encryption)
{
case 'plain' :
return $plaintext;

case 'sha' :
$encrypted = base64_encode(mhash(MHASH_SHA1, $plaintext));
return ($show_encrypt)? '{SHA}'.$encrypted : $encrypted;

case 'crypt' :
case 'crypt-des' :
case 'crypt-md5' :
case 'crypt-blowfish' :
return ($show_encrypt ? '{crypt}' : '').crypt($plaintext, $salt);

case 'md5-base64' :
$encrypted = base64_encode(mhash(MHASH_MD5, $plaintext));
return ($show_encrypt)? '{MD5}'.$encrypted : $encrypted;

case 'ssha' :
$encrypted = base64_encode(mhash(MHASH_SHA1, $plaintext.$salt).$salt);
return ($show_encrypt)? '{SSHA}'.$encrypted : $encrypted;

case 'smd5' :
$encrypted = base64_encode(mhash(MHASH_MD5, $plaintext.$salt).$salt);
return ($show_encrypt)? '{SMD5}'.$encrypted : $encrypted;

case 'aprmd5' :
$length = strlen($plaintext);
$context = $plaintext.'$apr1$'.$salt;
$binary = JUserHelper::_bin(md5($plaintext.$salt.$plaintext));

for ($i = $length; $i > 0; $i -= 16) {
$context .= substr($binary, 0, ($i > 16 ? 16 : $i));
}
for ($i = $length; $i > 0; $i >>= 1) {
$context .= ($i & 1)? chr(0) : $plaintext[0];
}

$binary = JUserHelper::_bin(md5($context));

for ($i = 0; $i < 1000; $i ++) {
$new = ($i & 1)? $plaintext : substr($binary, 0, 16);
if ($i % 3) {
$new .= $salt;
}
if ($i % 7) {
$new .= $plaintext;
}
$new .= ($i & 1)? substr($binary, 0, 16) : $plaintext;
$binary = JUserHelper::_bin(md5($new));
}

$p = array ();
for ($i = 0; $i < 5; $i ++) {
$k = $i +6;
$j = $i +12;
if ($j == 16) {
$j = 5;
}
$p[] = JUserHelper::_toAPRMD5((ord($binary[$i]) << 16) | (ord($binary[$k]) << 8) | (ord($binary[$j])), 5);
}

return '$apr1$'.$salt.'$'.implode('', $p).JUserHelper::_toAPRMD5(ord($binary[11]), 3);

case 'md5-hex' :
default :
$encrypted = ($salt)? md5($plaintext.$salt) : md5($plaintext);
return ($show_encrypt)? '{MD5}'.$encrypted : $encrypted;
}
}

Я так понимаю мне нужна строчка

Код
			default :
$encrypted = ($salt)? md5($plaintext.$salt) : md5($plaintext);
return ($show_encrypt)? '{MD5}'.$encrypted : $encrypted;
*

Artemeey

  • Новичок
  • 3
  • 0 / 0
Спасибо, помог и мне разобраться.
Пароль генерируется вот такой функцией: md5($plaintext.$salt).

В БД запись выглядет слудущем образом:
XXXXXXXXXXXXXX:YYYYYYYYYYYY
Где:
XXX - md5
YYY - sault.

plaintext - то что вводится в поле пароля при авторизации.
*

AstFreelancer

  • Новичок
  • 23
  • 0 / 0
Для базы Joomla 1.5 по крайней мере работает такой код:
Код
$salt = $plaintext;
$encrypted = md5($plaintext.$salt);
$password = $encrypted.':'.$salt;
И не забываем, что кроме таблицы jos_users нужно заполнять еще jos_core_acl_aro и jos_core_acl_groups_aro_map!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как закрыть от посещения страницу регистрации Joomla?

Автор Csandr

Ответов: 2
Просмотров: 44
Последний ответ Сегодня в 22:13:02
от Csandr
[FAQ] Joomla 2.5 - проверка на главную страницу

Автор fedragon

Ответов: 68
Просмотров: 52919
Последний ответ 26.09.2018, 10:23:03
от intcorp
Недавно написала руководство по созданию сайтов на CMS Joomla

Автор MariannaFrance

Ответов: 44
Просмотров: 8197
Последний ответ 12.09.2018, 00:38:21
от Pasha1992
Не удается авторизоваться в админке Joomla 2.5.4

Автор olgash

Ответов: 4
Просмотров: 509
Последний ответ 08.08.2018, 15:14:25
от Shomas
Не работает регистрация/напоминание пароля, "неверный параметр"

Автор AK901

Ответов: 17
Просмотров: 7043
Последний ответ 31.07.2018, 19:08:08
от vad78