Jest to prawdopodobnie spowodowane typem pola hasła. Czy Twoje pole hasła jest VARCHAR
? ? Jak długie to jest? Wydaje mi się, że SHA
generuje ciąg dłuższy niż pozwala na to pole, więc zostaje odcięty, gdy jest przechowywany i pasuje, gdy generujesz go ponownie w celu sprawdzenia.
Dokumentacja MySQL
mówi, że potrzebujesz 40 znaków do przechowywania wyjścia SHA
.