PHP md5 () дает другой вывод, затем MySQL md5

Я пытаюсь настроить систему входа, но я не могу решить одну проблему: PHP дает мне другой вывод с помощью md5 (); чем MySQL …

Например, в PHP:

$password = md5("brickmasterj"); return $password; 

Возвращает:

 3aa7b18f304e2e2a088cfd197351cfa8 

Но эквивалент MySQL дает мне более короткую версию:

 3aa7b18f304e2e2a08 

В чем проблема? И как мне работать с этим при проверке паролей?

Я думаю, проблема в длине столбца вашей таблицы, установите длину поля пароля как минимум 32

Никоим образом MySQL не возвращает его длиной <32. Если вы сделаете простой запрос, например SELECT md5('brickmasterj') , вы увидите. Теперь вы, скорее всего, вставляете значение в столбец, который недостаточно широк.

Является ли ваша база данных длиной 32 символа? Вы пишете в базу данных с помощью mysql md5?

Размер хэша, если он всегда исправлен. В вашем случае размер хэша составляет 128 бит. При преобразовании в строку ascii это будет 32 символьная строка, содержащая только шестнадцатеричные цифры. поэтому, если вы храните переменный символ, длина должна быть как минимум 32 примера: password varchar(32) должен идти в таблице mysql, тогда вы можете позвонить с помощью php, используя select password from table where password =md5($password);