Авторские статьи Соль

Discussion in 'Статьи' started by Scraid, 20 May 2013.

  1. Scraid

    Scraid Banned

    Joined:
    22 Mar 2007
    Messages:
    66
    Likes Received:
    19
    Reputations:
    6
    [​IMG]

    Я хотел сказать что покажу как защитить пароли юзеров на своем сайте с помощью соли.
    Для чего используется соль?
    Допустим вашу базу данных на сайте взломали, а там полностью открыты пароли. Никуда не годится, нужно шифровать что бы хакеру обидно стало.
    Ну что же, можно зашифровать в хэш md5, функцией md5()
    Например:

    Code:
    <?
    $pass = md5("12345");
    echo $pass;
    ?>
    Выведет результат:
    827ccb0eea8a706c4c34a16891f84e7b
    Но не тут то было, хакер полезет в ближайший словарь, допустим http://hashcracking.ru/, http://crackfor.me/
    И дешифрует хэш, такой способ шифровки надежен для автоматически сгенерированных паролей состоящих из 16 символов, ну ведь не все используют такие пароли, правильно?
    Придется усложнять задачу, «присыпим» соль.
    Соль – это автоматически генерируемая строка, которая «сыпится» на хэш md5.
    Создадим функцию для генерации соли:

    Code:
    function gSalt() {
    $salt = '';
    $length = rand(5,10); // длина соли (от 5 до 10 символов)
    for($i=0; $i<$length; $i++) {
    $salt .= chr(rand(33,126)); // выбираем символ из ASCII-table
    }
    return $salt; // выводим соль
    }

    Использовать можно как хотите, записываете в бд.
    например:

    Code:
    $pass = md5('12345').gSalt();
    mysql_query("INSERT INTO users (pass, salt) VALUES (".$pass.",".gSalt().")");
    Теперь лучше усложнить задачу, два раза зашифруем пароль, сначала в md5, потом сам хэш md5 с солью опять в md5

    Code:
    $pass = md5(md5('12345').gSalt());
    Можно приступить к проверке пароля на правильность.

    Code:
    $md5 = '9e643770b1a1d3fdcafec1c3a1e02d27';
    $salt = 'i[BxGS';
    if (md5(md5('12345').$salt) == $md5) {
    echo 'Пароль правильный';
    }
    ну $salt и $md5 выбираем из базы данных, пароль вставляем тот что записывали в бд с солью (в данном случае 12345)
    Если выводит «Пароль правильный» значит вы все верно сделали.
     
Loading...
Similar Threads - Соль
  1. udissta
    Replies:
    2
    Views:
    3,466
  2. Гаврила
    Replies:
    8
    Views:
    18,225