问题
I'm trying to set up a login system, but I can't solve one problem: PHP is giving me an other output with md5(); than MySQL...
For example, in PHP:
$password = md5("brickmasterj");
return $password;
Returns:
3aa7b18f304e2e2a088cfd197351cfa8
But the MySQL equivalent gives me a shorter version:
3aa7b18f304e2e2a08
What's the problem? And how do I work with this while checking passwords?
回答1:
I guess the problem in the length of column of your table, set the length of password field to at least 32
回答2:
No way MySQL returns it of a length of < 32. If you would do a simple query like SELECT md5('brickmasterj')
, you would see. Now you are most likely inserting the value into a column which is not wide enough.
回答3:
Is your database field 32 characters long? Are you writing to the database using mysql's md5?
回答4:
The hash size if always fixed. In your case the hash size is 128 bits. When converted to a ascii string it would be a 32 character string that contains only hexadecimal digits.
so if you are storing variable character the length should be atleast 32
example:password varchar(32)
should go in mysql table then you can call using php using
select password from table where password =md5($password);
来源:https://stackoverflow.com/questions/11540744/php-md5-gives-different-output-then-mysql-md5