Intereting Posts
Как увеличить максимальный размер загрузки в cPanel? Увеличение PHP memory_limit. В какой момент это становится безумным? Загрузите несколько файлов в виде zip-файла, используя php Как Zend DB управляет подключениями к базе данных Отправить сообщение с помощью Volley и получить в PHP MySQLi: запрос VS готовят Как удалить данные из базы данных с помощью переключателя в php? Переопределение констант класса и свойств Mysqli update throwing Вызов функции-члена bind_param () Различия: просмотр страницы Источник против просмотра в Firebug Подключение к базе данных с PDO и классом Singleton Я хотел бы добавить дополнительную строку в мою WordPress BootStrap Navigation Как синхронизировать электронные письма (в задаче) и отправлять обычные электронные письма в настоящий момент в других контроллерах? загрузка на сервер mysql не работает Легкая CMS с открытым исходным кодом – текущая ситуация

Использование хэширования для безопасного хранения паролей пользователей

Попробуйте найти StackOverflow, прежде чем задавать вопрос. На многие вопросы уже ответил. Например:

  • PHP и MySQL сравнивают пароль
  • как создать mySQL-пользователя с хешем ('sha256', $ salt. $ password)?
  • Безопасный хэш и соль для паролей PHP
  • Вход пользователя с одним запросом и солью пользователя для каждого пользователя
  • Неслучайная соль для хэшей паролей

Здравствуй

Я хочу, чтобы никто не мог видеть мой пароль даже в базе данных.

Поэтому я использовал хеш-функцию, подобную этой

$passowrd_hash=hash('shal',$_POST['password']); 

Теперь я легко могу сохранить это значение password_hash в базе данных. Это будет нечто вроде зашифрованной формы.

Теперь пользователь знает свой первоначальный пароль, он не знает этот зашифрованный пароль.

Теперь, если он попытается войти в систему через этот оригинальный пароль. Он не может войти в систему.

Итак, есть ли какой-либо метод, чтобы он мог быть расшифрован, и пользователь может войти в систему. Таким образом, он может получить как пароль безопасности, так и логин снова.

Как это сделать?

Solutions Collecting From Web of "Использование хэширования для безопасного хранения паролей пользователей"

вам нужно хэш ввести пароль пользователя и сравнить хэши.

Прежде чем сравнивать зарегистрированный пароль пользователя с тем, который находится в базе данных, зашифруйте опубликованный пароль так же, как и сохраненный пароль.

Все, что вам нужно сделать, это зашифровать введенный вами пароль и сравнить их; хэш в базе данных и тот, который вы только что зашифровали. Если они совпадают, введенный пароль является правильным. Я предполагаю, что вы используете такой алгоритм, как SHA1.

Как уже было сказано, вам нужно хэшировать пароль каждый раз, когда они повторно вводят его и сравнивают хэш с тем, что находится в вашей базе данных.

Вы также должны изучить использование соли в своем алгоритме хэширования. В этом вопросе много обсуждается:

Безопасный хэш и соль для паролей PHP

Вам не нужно расшифровывать его. Вы не можете преобразовать хэш в простой текст, его одностороннюю функцию. Итак, в основном вы вводите пароль ввода и сравниваете два хэша:

 Eg (pseudo code):- if hash(password entered by user) == password stored in databse Then //logged in successfully else //login failed end if 

Я настоятельно рекомендую использовать md5 () http://php.net/manual/en/function.md5.php .

Когда пользователь подписывается, вы сохраняете:

 $password = md5($_POST['password']); 

И когда пользователь входит в систему, вы проверяете:

 if($_POST['password_entered'] == $passwordFromDB) : // Log user in else : // Show error to user endif;