MD5 パスワードの保存と比較に関する質問

WBOY
リリース: 2016-06-20 12:34:27
オリジナル
1502 人が閲覧しました

登録時に MD5 暗号化を使用してパスワードを mysql に保存しました。ログイン時に md5() を使用して値を比較したため、比較が失敗しました。

と答えてください。


ディスカッションへの返信 (解決策)

階下にコードを投稿します

これは判定される関数モジュールです:
function pd(){//パスワードが正しいかどうかを確認します
$id=$_POST['id'];
$pwd=trim(md5) ($_POST['pwd' ]));
echo "$pwd"."
";
$sql=mysql_query("SELECT * FROM `xx` WHERE `id`='$ id'AND`password`= '$pwd'");
$sql_p=mysql_num_rows($sql);
echo "$sql_p";
if($sql_p==0){
echo "<script> アラート ('パスワードが間違っています');window.location.herf='index.php';</script>"
}
else
{echo "< ;script>alert('パスワードは正しいです ');";}
}

データベース内の md5 値;
root2
e10adc3949ba59abbe56e057f20f88;
値Web ページに表示されます。
e10adc3949ba59abbe56e057f2 0f883e

$pwd=md5(trim($_POST['pwd']));//如果还是不行,重新生成一个md5的值,放到数据库再试下,看看是不是插入的时候错了
ログイン後にコピー

echo md5('root2');mysql_connect();$rs = mysql_query("select md5('root2')");print_r(mysql_fetch_row($rs));
ログイン後にコピー
9b70d6dbfb1457d05e4e2c2fbb42d7dbArray(    [0] => 9b70d6dbfb1457d05e4e2c2fbb42d7db)
ログイン後にコピー
e10adc3949ba59abbe56e057f20f883e

ウェブページには e10adc3949ba59abbe56e057f20f883e が表示されます
いいえ、事故が起きた場合は 123456 になります。言っておきますが、root2 の方が優れています。触ることもできません。

PS もう 1 つ言わせてください。データベースの表示が不完全です。基本的には、パスワードフィールドに設定されている桁数が不当であることが原因です。少なくとも char(32)

1.desc xx を見てください。テーブル構造では、パスワード フィールドの長さは 32 ビットである必要があります。

echo md5('root2');  //9b70d6dbfb1457d05e4e2c2fbb42d7db
ログイン後にコピー

e10adc3949ba59abbe56e057f20f883e は md5 (123456) の値です。

ホストは、平文のパスワードとデータベースに記録されたパスワードを与えることができます。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!