1

私は自分のウェブサイトに登録システムを設定して、ユーザーがサインアップしたときにパスワードが、サインアップした電子メールとパスワードの md5 化された混合物になるように設定しています。残念ながら、私はそれを正しく機能させることができません。コードは次のとおりです。

サインアップ時:

$user = strip_tags(substr($_POST['email'],0,32));
$pass = strip_tags(substr($_POST['password'],0,32));
$cleanPass = crypt(md5($pass),md5($user));
$date = time();

$stmt = $db->prepare("INSERT INTO users (password, email, first, last, date)
        VALUES(:password, :email, :first, :last, :date)");

サインイン時:

$email = $_POST['email'];
$user = strip_tags(substr($_POST['email'],0,32));
$pass = strip_tags(substr($_POST['password'],0,32));        

$cleanPass = crypt(md5($pass),md5($user));

$stmt = $db->prepare("SELECT email,password FROM users WHERE email=:email AND password=:password limit 1");
4

1 に答える 1

2

データを保存するときにユーザー/パスの組み合わせを使用する場合、考慮したいのは暗号化メカニズムの長さです。通常、それを行うときは、ユーザーとパスの 2 つの md5 を暗号化しませんが、代わりに次のようなことを行います

$cleanPass = md5( $user.$pass );

ユーザーも保存したい場合は、それを md5 しないでください。パスを保存する場合は、md5 にします。

これは役に立ちますか?

于 2012-08-21T22:03:24.917 に答える