在注册和登录时对密码进行加密


Crypting passwords on sign up and sign in

我在我的网站上设置了注册系统,当用户注册时,密码是他们注册的电子邮件和密码的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");

如果你想在存储数据时使用user/pass的组合,你可能想要的是加密机制的长度。通常情况下,当你这样做时,你不会对用户的2 md5进行加密&通过,但你却做了类似的事情

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

如果你还想存储用户,你不应该md5那个。如果你想存储通行证,md5它。

这有帮助吗?