Probablemente se deba al tipo de campo de su contraseña. ¿Es su campo de contraseña VARCHAR
? ¿Cuánto tiempo es? Me parece que SHA
está generando una cadena más larga de lo que permite el campo, por lo que se corta cuando se almacena y coincide cuando se regenera para verificar.
Documentación de MySQL
dice que necesita 40 caracteres para almacenar la salida de SHA
.