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

saniokua`

  • Новичок
  • 6
  • 0 / 0
md5 + salt как убрать?
« : 30.10.2011, 16:09:37 »
На сайте использую CB компонент. Надо убрать шифрование паролей или оставить только md5. Как ето сделать и где надо поменять?
*

icom

  • Давно я тут
  • 819
  • 198 / 4
Re: md5 + salt как убрать?
« Ответ #1 : 01.11.2011, 01:42:57 »
в файле libraries\joomla\user\helper.php строка 179
*

smart

  • Администратор
  • 6485
  • 1317 / 15
  • Хочешь сделать хорошо — сделай!
Re: md5 + salt как убрать?
« Ответ #2 : 01.11.2011, 01:44:58 »
Только зачем сознательно понижать безопасность?
*

saniokua`

  • Новичок
  • 6
  • 0 / 0
Re: md5 + salt как убрать?
« Ответ #3 : 01.11.2011, 10:57:21 »
надо было в програме сделать проверку логина и пароля пользывателей на сайте.
*

saniokua`

  • Новичок
  • 6
  • 0 / 0
Re: md5 + salt как убрать?
« Ответ #4 : 01.11.2011, 11:47:51 »
Код

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;
}
}


ето как я понимаю функцыя  шифрования...

Код
case 'md5-hex' :
default :
$encrypted = ($salt)? md5($plaintext.$salt) : md5($plaintext);
return ($show_encrypt)? '{MD5}'.$encrypted : $encrypted;
тут идет вывод md5:salt, но в базу даных идет шифр, если я отключаю ети строчки...
Всю функцыю отключить тоже не катит...
Что делать?
*

saniokua`

  • Новичок
  • 6
  • 0 / 0
Re: md5 + salt как убрать?
« Ответ #5 : 01.11.2011, 11:52:44 »
желательно оставить только md5 в чистом виде.
*

smart

  • Администратор
  • 6485
  • 1317 / 15
  • Хочешь сделать хорошо — сделай!
Re: md5 + salt как убрать?
« Ответ #6 : 01.11.2011, 12:11:59 »
надо было в програме сделать проверку логина и пароля пользывателей на сайте.
мне кажется это не повод отключать salt...
*

saniokua`

  • Новичок
  • 6
  • 0 / 0
Re: md5 + salt как убрать?
« Ответ #7 : 01.11.2011, 12:30:53 »
ето самый простой способ... в дальнейшем возможна реализацыя алгоритма соли в програме... но пока только мд5
*

icom

  • Давно я тут
  • 819
  • 198 / 4
Re: md5 + salt как убрать?
« Ответ #8 : 01.11.2011, 14:13:41 »
вы объясните как и где нужно проверять пароль, ведь соль можно легко узнать и далее сформировать зашифрованный пароль, для конкретного пользователя можно соль вытащить из таблицы user,
например вытащили зашифрованный пароль из базы и присвоили переменной $pas, вытаскиваем соль:
$salt = explode(':', $pas);
$salt[1] - это соль

далее формируем зашифрованный пароль, например пользователь ввел 1111:
$new_pass = md5('1111'.$salt[1]).':'.$salt[1] ;

сравниваем пароль из таблицы user с паролем $new_pass
*

vskim

  • Новичок
  • 11
  • 0 / 0
Re: md5 + salt как убрать?
« Ответ #9 : 03.03.2014, 15:59:02 »
как убрать вообще шифрование? я создал поддомен и там сайт . пользователи и пароли будут одни в виде номеров чеков... хочу чтобы пользователь сайта вводил номер чека и пароль чека и заходил на сайт... в MySQL  нашел таблицу User/ дальше с логинами то понятно я их заменю на номера. а вот с паролями как быть? хочу чтобы в SQL например пароль 123456 то и на сайт вводишь подходил. но все без успешно. прошу помочь....
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как убрать ссылку на allforjoomla.ru из модуля SimpleForm2?

Автор Loh

Ответов: 3
Просмотров: 1628
Последний ответ 20.06.2017, 11:17:28
от ZyX
Подскажите - сайт стал в фронтэнде выводить ошибку. Как ее убрать

Автор vovchikku

Ответов: 7
Просмотров: 701
Последний ответ 30.01.2017, 10:35:49
от vovchikku
Как убрать похожие видео

Автор nuk

Ответов: 7
Просмотров: 2872
Последний ответ 21.02.2016, 16:30:29
от halileev
Как убрать отступ?

Автор Alger48

Ответов: 9
Просмотров: 856
Последний ответ 17.02.2016, 21:53:15
от Alger48
Появились левые страницы на сайте. как убрать?

Автор gemkirill

Ответов: 3
Просмотров: 1385
Последний ответ 09.10.2015, 12:24:29
от yoursergeich