Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Соль. Знаю, знаю))
 
 автор: ramundo   (16.11.2014 в 14:49)   письмо автору
 
 

Читал, что соль лучше делать из случайного набора символов. Но тогда, если
$password = $_POST['password'] ;
$salt = случайная строка из 10 символов ;
$hash_pass = шифрование ( шифрование ( $password ).$salt ) ;
//Далее записываю хэш в бд

то при авторизаци пользователя нужно будет проделать то же самое со введенным им паролем (1), достать хэш из бд (2), сравнить 1 и 2. Проблема в том, что соль генерится случайно, а следовательно, 1 и 2 будут различаться. Вот.

Как же быть?

  Ответить  
 
 автор: confirm   (16.11.2014 в 14:53)   письмо автору
 
   для: ramundo   (16.11.2014 в 14:49)
 

Соль тоже хранят, на полочке. )
http://php.net/manual/ru/function.crypt.php
http://php.net/manual/ru/book.password.php

  Ответить  
 
 автор: Trianon   (16.11.2014 в 17:34)   письмо автору
 
   для: ramundo   (16.11.2014 в 14:49)
 

>то при авторизаци пользователя нужно будет проделать то же самое со введенным им паролем (1), достать хэш из бд (2), сравнить 1 и 2.

слегка не так.
придется достать из БД соль и хеш правильного пароля, по соли посчитать хеш пароля предъявляемого, и наконец, сравнить два хеша.

  Ответить  
 
 автор: Ramundo   (17.11.2014 в 03:19)   письмо автору
 
   для: Trianon   (16.11.2014 в 17:34)
 

Спасибо! А можно краткий пример ?

  Ответить  
 
 автор: moonfox   (17.11.2014 в 12:38)   письмо автору
 
   для: Ramundo   (17.11.2014 в 03:19)
 

$sql = 'SELECT `id`, `login`, `solt`, `hash` FROM `'.USER_TABLE.'` WHERE `login` = "'.real_escape_string($_POST[name]).'"';
$var = query($sql); 
$data = fetch_array($var);
if($data['hash'] == md5(md5($data['solt']).md5($_POST['pass'])))
{... }

  Ответить  
 
 автор: ramundo   (17.11.2014 в 13:30)   письмо автору
 
   для: moonfox   (17.11.2014 в 12:38)
 

Благодарю!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования