2
$salt = uniqid();
   $crypt = md5($password , $salt);
   $new_pass = $crypt.':'.$salt;

データベース内:­ot÷„[ªà%Ûʼn¹:17b8bc731c322c9e05a26666458117f4

これは構文エラーですか? または、データベースが正しい文字フォーマットで設定されていませんか?

4

1 に答える 1

11

有効にしましたraw_output

PHP ドキュメント

オプションの raw_output が TRUE に設定されている場合、代わりに md5 ダイジェストが長さ 16 の raw バイナリ形式で返されます。

変化する

$crypt = md5($password , $salt);
                       ^------ You moved the salt to raw_output 

$crypt = md5($password . $salt);
                       ^------ Should be this 


md5セキュリティ上の理由から、パスワードハッシュ に使用することはお勧めしません. MD5 はひどく壊れているため、適切な衝突または逆ハッシュを見つけるのにそれほど時間がかかりません。壊れると、ハッシュ アルゴリズムは悪化するだけで良くなることはないため、壊れていないハッシュ アルゴリズムを選択することをお勧めします。

標準

より良い代替案

于 2012-10-11T00:03:28.683 に答える