md5() doesn't work???

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View

I have my php/mysql setup so when a user registers, it stores the
md5()'d version of their password in the sql database, and when they
want to log in, it compares an md5'd version of their input the the
data in the database.

BUT the md5 version of the input is different than what I got before.
And if I try to do an echo() of it, I always get

It's really messed up.

Why doesn't md5() work properly?  Taking the md5 of identical text
should generate identical results.

I even get results of different lengths! md5 was set at 32 bytes I

Example: I input the password "test".  php-my-admin shows password as
"098f6bcd4621d37".  OK so far.  Login page echo's md5 of "test" as
"06d80eb0c50b49a509b49f2424e8c805".  What is wrong with this function!!

It's not just an echo issue either, as a SELECT * FROM table WHERE
password='$md5pass' returns 0 rows.


Re: md5() doesn't work???

Never mind, I fixed my problem.  I had my MySQL table set to only hold
the first 15 digits (because the password length limit is 15,
forgetting that the md5 turns it into 32).

Re: md5() doesn't work???

I've also noticed before that PHP's md5 function seemed to behave
differently then MySQL's md5 function. It may have been a mistake in my
script though but I found it best to use either the PHP version or
MySQL version consistently.


Site Timeline