Форум программистов, компьютерный форум, киберфорум
ASKazin
Войти
Регистрация
Восстановить пароль
Стараюсь нести добро в массы!
Рейтинг: 5.00. Голосов: 1.

Работа с паролем в PHP (с солью)

Запись от ASKazin размещена 08.02.2016 в 09:35
Метки md5, php

Создаем функцию для соли:
PHP
1
2
3
4
5
function salt()
{
    $salt = substr(md5(uniqid()), -8);
    return $salt;
}
При регистрации записываем пароль + соль в БД:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//Получаем ХЕШ соли
                $salt = salt();
 
                //Солим пароль
                $pass = md5(md5($_POST['pass']) . $salt);
 
                /*Если все хорошо, пишем данные в базу*/
                $sql = 'INSERT INTO `reg`
                        VALUES(
                                :email,
                                :pass,
                                :salt,
                                "' . md5($salt) . '"
                                )';
                //Подготавливаем PDO выражение для SQL запроса
                $stmt = $db->prepare($sql);
                $stmt->bindValue(':email', $_POST['email'], PDO::PARAM_STR);
                $stmt->bindValue(':pass', $pass, PDO::PARAM_STR);
                $stmt->bindValue(':salt', $salt, PDO::PARAM_STR);
                $stmt->execute();
При авторизации проверяем так:
PHP
1
2
3
if (md5(md5($_POST['pass']) . $rows[0]['salt']) == $rows[0]['pass']) {
                $_SESSION['user'] = true;
                $_SESSION['login'] = $_POST['email'];
Размещено в PHP, Безопасность
Просмотров 450 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.