[英]hashing the password using md5
我想在登录时使用MD5和相同的东西对数据库中的注册密码进行哈希处理,但问题是在注册过程中密码被哈希化了,但是在登录系统中工作,因为这是不正确的密码
register.php
//ADD MD5 hash to the password
$db_pass=md5($pass1);
//************Insert all the user's input to the database**************************//
$query = mysql_query("INSERT INTO user(user_name, first_name, last_name, governorate,
district, village, birth_date, email_address, specialization, password,
registered_date)VALUES('$username', '$firstname', '$lastname', '$governorate',
'$district', '$village', '$bdate', '$email', '$specialization', '$db_pass',
now())") or die("could not insert data");
的login.php
$pass = md5($pass);
$sql=mysql_query( "SELECT user_id, email_address, first_name, user_name FROM user
WHERE email_address='$email'
AND password='$pass'LIMIT 1") or die("error in user table");
您不应该使用MD5。 它是不安全的,以太快了,以至于您不能使用它来进行密码哈希(如果您不明白为什么使用快速密码哈希算法是个坏主意,请查看Wiki页面上的蛮力攻击 ) 。 您应该考虑使用Bcrypt之类的东西 。
您可以通过crypt函数使用Bcrypt。
$userPassword = 'testpassword';
$hashed = crypt($userPassword, '$2a$15$usesomesillystringforsalt$');
echo $hashed;
如上文所述,ircmaxell在github上有一个相当不错的库 。 该库与password_hash函数具有向前兼容性,该函数将在PHP 5.5(当前在BETA)中可用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.