MySQLの照合では大文字と小文字が区別されない可能性があります 。パスワードが保存されている列を大文字と小文字を区別する照合に変更します。
経験則:
- 照合が_ciで終わる場合、大文字と小文字は区別されません。
- 照合が_csで終わる場合、大文字と小文字が区別されます。
例:
- utf8_general_ciでは大文字と小文字は区別されません。
- utf8_binでは大文字と小文字が区別されます
ただし、重要な注意事項
この問題が発生している場合は、パスワードが間違って保存されている可能性があります 。パスワードをプレーンテキストで保存するのではなく、代わりにパスワードのハッシュを保存して、適切にソルトする必要があります。
次に、ユーザーがログインすると、そのエントリをハッシュし、そのハッシュをDBが保持しているものと比較します。両方が等しい場合、ユーザーはおそらく正しいパスワードを入力しました。