Link in progress
Обо мне
Хранение паролей в базе данных

Хранение паролей в базе данных Вопрос хранение паролей в базе данных пользователей относится к теме безопасности. Многие начинающие и не только программисты уверены в том, что есть такие виды шифрования паролей, которые взломать практически нет возможности из-за отсутствия как таково «алгоритма шифрования». И так, сегодня немного поговорим об MD5 и SHA шифрование а также о таких функциях как password_hash() и password_verify().

MD5 — (RFC 1321) принимает входящую длину строку как «произвольная» и выдает 128bit «отпечаток» этой строки (принцип отпечатка пальца). Что бы получить «TRUE» при проверке пароля нужно приложить тот же «палец» к сканеру. Кажется, все хорошо и «одинаковых» отпечатков в природе не так и много.

SHA (1,2) (RFC 3174) — Secure Hash Algorithm. Не буду тратить ваше время, кому интересно, читайте тут об SHA-1, SHA-2, href=»https://ru.wikipedia.org/wiki/SHA-3″ rel=»noopener» target=»_blank»>SHA-3.

К чему все это? В том, что теоретически взломать можно все. Читаем ЭТУ статью и думаем об вечном. Конечно, далеко не каждый из нас, программистов, начинает думать об безопасности с первых лет работы. Как бы это не было к вопросу хранение паролей в базе данных, кредитных дынных пользователей нужно подходить очень ответственно.

password_hash() — это, наверное, самый лучший на сегодня быстрый и безопасный способ хранение паролей в базе данных.

Простой пример кода:

1
2
3
4
5
6
7
8
9
10
<?php

$hideMyPassword = password_hash('my own the best password', PASSWORD_DEFAULT);
 
// И теперь осталось отправить этот "пароль" хранится этот пароль в базу данных
 
// Что бы проверить пароль существует для этого специальная функция
 - password_verify('I wanna know your password', $verificationPassword); // false
 - password_verify('my own the best password', $verificationPassword); // true
?>

Многие гуру программирования рекомендуют «посолить» пароль перед передачей его в какую либо функцию хеширование. Но если вы используете функцию password_hash для хранение паролей в базе данных ваших пользователей то вам это делать не нужно, потому что эта функция делает это за вас.

С уважением, ProIN.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Max quality, min price, min time expenditure
Send me a message to: work@glogla.net
Portfolio