如何加密密码,以便它不容易破解?

时间:2014-01-18 16:47:52

标签: php encryption passwords

我为此目的使用了md5()

// username and password sent from form 

$username=$_POST['myusername']; 
$password=$_POST['mypassword']; 
$encrypted_password=md5($password);

$sql="SELECT * FROM $tbl_name WHERE username='$username' and password='$encrypted_password'";
$result=mysql_query($sql);

但我听说这不安全。 我是初学者所以请建议我一个好的密码加密方法?如果截获的帖子数据会以纯文本形式显示吗?

2 个答案:

答案 0 :(得分:1)

  

我是初学者所以请建议我一个好的密码加密方法

使用crypt()代替md5()

<?php
$hashed_password = crypt('mypassword'); // let the salt be automatically generated
if (crypt($user_input, $hashed_password) == $hashed_password) {
   echo "Password verified!";
}
?>

PHP Manual

中的一些示例
  

如果截获的帖子数据也会以纯文本形式显示?

Ofcourse!如果您真的担心这一点,请在您的域中配置 SSL 证书。

答案 1 :(得分:1)

在PHP 5.5中,您可以使用新的password_hash

$hash = password_hash($password, PASSWORD_DEFAULT);

在旧版本中,有一个兼容性层执行相同的操作:https://github.com/ircmaxell/password_compat