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 回答