Seu MySQL collation provavelmente não diferencia maiúsculas de minúsculas . Altere a coluna em que a senha está armazenada para um agrupamento que diferencia maiúsculas de minúsculas.
Algumas regras de ouro:
- Quando uma ordenação termina em _ci, ela não diferencia maiúsculas de minúsculas.
- Quando um agrupamento termina em _cs, ele diferencia maiúsculas de minúsculas.
Exemplo:
- utf8_general_ci não diferencia maiúsculas de minúsculas.
- utf8_bin diferencia maiúsculas de minúsculas
No entanto, uma observação importante
Se você está enfrentando esse problema, você está provavelmente armazenando as senhas incorretamente . Você não deve armazenar as senhas em texto simples, mas deve armazenar um hash da senha e salvá-lo corretamente.
Então, quando um usuário faz login, você faz o hash de sua entrada e compara o hash com o que seu banco de dados contém. Quando ambos são iguais, o usuário provavelmente digitou uma senha correta.