用河豚加密

时间:2014-01-06 10:54:35

标签: php mysql encryption blowfish

我最近从互联网上学习了河豚加密,当用户注册数据库时,我能够加密用户密码。但是,当我想验证用户在登录时输入的值。键入的值与数据库中的值不匹配。

<?php session_start(); ?>
<?php 
 include("database.php");
 include("cryptpassword.php");

    $idno = $_POST['ID_Number'];
    $password = $_POST['Password']; //inputPass

  $conn = dbConnect();  

    if (!$conn)
        die("Couldn't connect to MySQL");


    $query = "select * from user where idno='$idno'";
    //$queryadmin = "select * from user where idno='$idno' and usertype='admin'";

    $result = mysql_query($query, $conn);
    //$resultadmin = mysql_query($queryadmin, $conn);

  if($row = mysql_fetch_assoc($result)){
        $set_password = $row['employeepassword'];
        echo $set_password;
        }



  //$row = mysql_fetch_assoc($resultadmin);
//$set_password = $row['employeepassword'];

$input_password = crypt($password, $set_password);  
echo "</br /> $input_password";

if($input_password == $set_password) {
              echo "</br />welcome";
  }
  else {
    echo "</br />idiot";
  }
dbDisconnect($conn);

?>

我得到的两个输出如下:

$ 2Y $ 10 $ dkGpWiujoaiegVABKvFXruQ $ 2Y $ 10 $ dkGpWiujoaiegVABKvFXruQzkyCZIbFCtxq2N / 5LmfLbi5dBHW0bS

第一个来自数据库,而第二个值来自用户输入,我不知道为什么用户输入有额外的值导致验证失败。

1 个答案:

答案 0 :(得分:0)

  1. 您的数据库字段大小是否足够大(64?)
  2. 它们永远不会匹配,您必须使用特殊功能来检查密码
  3. 更多信息如何使用http://lt1.php.net/crypt