Hash de senha em PHP

Armazenar a senha em texto simples está incorreto. Um hacker mal-intencionado pode obter acesso ao seu banco de dados e roubar as senhas.

Portanto, geralmente o login é armazenado em texto simples, e a senha tem seu hash calculado por uma função especial md5, que recebe a senha como parâmetro e retorna seu hash, a partir do qual não é possível recuperar a senha original.

Vamos, por exemplo, encontrar o hash de alguma string:

html<?php
  echo md5('12345'); // exibirá '827ccb0eea8a706c4c34a16891f84e7b'
?>

Agora precisamos modificar nosso registro e nosso processo de login. Para começar, eu recomendaria limpar a tabela de usuários, pois nela atualmente as senhas estão armazenadas em texto simples, mas deveriam armazenar seus hashes. Então, durante o teste de registro, a tabela será preenchida com dados no novo formato.

Agora vamos ajustar nosso registro para que, ao salvar um novo usuário no banco, seja adicionado não a senha, mas seu hash.

A alteração descrita será algo assim:

html<?php
  $login = $_POST['login'];
  $password = md5($_POST['password']); // transforma a senha em seu hash
  
  $query = "INSERT INTO users SET login='$login', password='$password'";
?>

Vamos fazer alterações semelhantes no login:

html<?php
  $login = $_POST['login'];
  $password = md5($_POST['password']); // transforma a senha em seu hash
    
  $query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
?>
Задание 1

Faça as alterações no registro levando em conta o hash, registre alguns novos usuários, verifique se eles foram adicionados ao banco de dados com as senhas hasheadas.

Задание 2

Faça as alterações no login levando em conta o hash, tente fazer login com os usuários registrados anteriormente.