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:
<?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:
<?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:
<?php
$login = $_POST['login'];
$password = md5($_POST['password']); // transforma a senha em seu hash
$query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
?>
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.
Faça as alterações no login levando em conta o hash, tente fazer login com os usuários registrados anteriormente.