8

ログインシステムをセットアップしようとしていますが、1つの問題を解決できません。PHPがmd5()で別の出力を提供しています。MySQLより...

たとえば、PHPの場合:

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

戻り値:

3aa7b18f304e2e2a088cfd197351cfa8

しかし、MySQLに相当するものは私に短いバージョンを与えます:

3aa7b18f304e2e2a08

どうしたの?また、パスワードを確認しながらこれを操作するにはどうすればよいですか?

4

4 に答える 4

9

テーブルの列の長さに問題があると思います。パスワードフィールドの長さを少なくとも32に設定してください

于 2012-07-18T11:55:28.887 に答える
2

MySQLが32未満の長さを返すことはありません。のような単純なクエリを実行すると、次のようSELECT md5('brickmasterj')に表示されます。これで、幅が十分でない列に値を挿入する可能性が高くなります。

于 2012-07-18T11:56:46.783 に答える
2

データベース フィールドの長さは 32 文字ですか? mysql の md5 を使用してデータベースに書き込んでいますか?

于 2012-07-18T11:57:17.810 に答える
0

常に固定の場合のハッシュ サイズ。あなたの場合、ハッシュサイズは128ビットです。ASCII 文字列に変換すると、16 進数のみを含む 32 文字の文字列になります。したがって、可変文字を格納している場合、長さは少なくとも 32 にする必要があります例: password varchar(32) mysql テーブルに移動する必要があります。 select password from table where password =md5($password);

于 2015-09-04T06:51:10.363 に答える