Loading...
Я вот смотрю и удивляюсь кодерам, почему вы используете всякую дрянь для хеша паролей? Поймите простую вещь, в данный момент существует куча радужных таблиц и хранить пароли в md5() (да даже если md5(sha1(md5($password, $solt))) - это полный пи*дец).

Еще с версии php 5.5 появилась функция password_hash() . Работать с ним на столько удобно и безопасно, что было бы глупо не использовать его.

Немного расскажу о password_hash и покажу примеры исполнения.

password_hash() — используется для хэша пароля
password_verify() — используется для проверки пароля на соответствие хэшу


Произвести хеширование пароля, довольно просто:


<?Php
// Получаем из формы пароль методом post
$password = $_POST['password'] // даже фильтровать не надо

// PASSWORD_DEFAULT или PASSWORD_BCRYPT - выбор за вами
// PASSWORD_DEFAULT от 60 и более символов в хеше (длинна)
// PASSWORD_BCRYPT длинна хеша ровно 60 символов
$hash = password_hash($password, PASSWORD_DEFAULT);

// Все, мы получили хеш пароля, выглядит он примерно
// Вот так: $2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a
?>


Вот мы и получили хеш пароля, записали его в бд. Теперь, при авторизации пользователя нам нужно проверить, соответствует ли хеш пароля введенному паролю.

Здесь все ни чуть не сложнее:


<?
// Создаем подготовленный запрос (с таким запросом ни каких sql инъекций никогда не будет, запомните это)

$stmt = $db->prepare("SELECT `id`.`users`.`password` FROM users WHERE login= ?");
$stmt->bind_param("s", $_POST['login']);
$stmt->execute();
$user = $stmt->get_result()->fetch_assoc();

if ($user && password_verify($_POST['password'], $user['password'])){

echo "Все верно, пароли совпадают, через 5 секунд вас перенаправит на сайт!";

}else{

echo "Увы, но вы ввели не верный пароль";

}
?>


Вот и все! спасибо за внимание, полезные ссылки на документацию:

- Все о password_hash()
- Подготовленные запросы mysqli
________
посл. ред. 14.03.2019 в 14:04; всего 2 раз(а); by Todge
[xrystalll] (08.03.2019 в 11:18)
да да я md5(base64_encode(md5 .ыы.

Еще и солишь наверное? *DASH* .67.
давно так делаю))) не новинка))
как всегда дичь о радужных таблицах

password_hash() - я не против, НО Добро пожаловать в мир php7
Както пофиг. Что бы пароль расшифровать его нужно сначала свиснуть. Дыры как минимум в скриптах своих позакрывайте. А если у кого и свиснут, нехрен лазить по всякой дичи.
[xrystalll] (08.03.2019 в 12:23)
PhpStorm , люблю php.net Гг
Также можно использовать пердопределенные константы для этого параметра


это косяк переводчика, в оригинале же на инглише ясен пень нет такого слова :-D

дай ссыль на какой странице это я кентам покажу
[xrystalll] (08.03.2019 в 12:40)
PhpStorm , так на той. что ты написал http://php.net/manual/ru/function.sodium-crypto-pwhash-str.php
error


ааааа ясно я просто прочитал что солит пароли автоматом поэтому про дополнительные параметры уже не стал читать

класс косяк
PhpStorm (08.03.2019 в 12:20)
как всегда дичь о радужных таблицах

password_hash() - я не против, НО Добро пожаловать в мир php7

Это не дичь, это реальность.
--
В принципе функции ничем не отличаются, кроме того, что соль генерируется самостоятельно и параметры обязательны.

Тот же аргон используется и в password_hash() но с учетом, что он есть в сборке к php
md5(sha1(md5($password, $solt)))

Чтобы наверняка))

Пусть хоть так)Некоторые индивидуумы вообще не хешируют.
Todge (08.03.2019 в 12:48)
PhpStorm (08.03.2019 в 12:20)
как всегда дичь о радужных таблицах

password_hash() - я не против, НО Добро пожаловать в мир php7

Это не дичь, это реальность.
--
В принципе функции ничем не отличаются, кроме того, что соль генерируется самостоятельно и параметры обязательны.

Тот же аргон используется и в password_hash() но с учетом, что он есть в сборке к php


радужные таблицы - дичь для нубов попугать их

в password_hash() ЕМНИП, то если добавлять алгоритм PASSWORD_BCRYPT, то соль тоже будет автоматом добавляться и хэш для одного и того же пароля будет всегда разный, так что не слишком сильно они и отличаются
Онлайн: 6
Время:
Gen. 0.7197
(c) Bym.Guru 2010-2026