2012-04-11 109 views

回答

0

MD5已過時,不再是足夠的密碼加密方法。您應該使用更現代的加密算法來研究鹽漬哈希。

深思: bcrypt

+0

你好,我使用的是joomla 2.5,它們確實使用了鹽漬散列(剛剛發現)。你會如何修改我的代碼以使其工作? – 2012-04-11 18:05:28

+0

我同意@Dave,MD5算法不再被認爲是安全的。請通過以下鏈接:http://www.php.net/manual/en/faq.passwords.php#faq.passwords.fasthash – 2012-04-11 18:07:28

+0

是否有您決定不使用PHP API的原因? http://api.joomla.org/ – Dave 2012-04-11 19:33:34

0

首先,

   //get the posted values 
    $username=htmlspecialchars($_POST['user_name'],ENT_QUOTES); 
    $password=htmlspecialchars($_POST['password'],ENT_QUOTES); 

    $check_for_username = $mysqli->query("SELECT username FROM q4jli_users WHERE username='$username' AND password=MD5('$password')"); 
    if (mysqli_num_rows($check_for_username)) {  
     echo "yes"; 

    } else { 
     echo "no";                   
    } 

謝謝,你需要確保用戶的密碼被加密與MD5數據庫。如果沒有,那麼你可以使用此代碼:

$mysqli->query("INSERT INTO q4jli_users (username, password) VALUES ('$username', MD5('$password'))"); 

然後,看到如果用戶輸入正確的密碼時,您需要將其加密到MD5,然後在數據庫中運行一個查詢:

$check_for_username = $mysqli->query("SELECT username FROM q4jli_users WHERE username='$username' AND password=MD5('$password')"); 
+0

您好,感謝您的回答,我已經更新了我的代碼,但它仍然無法正常工作。我剛剛發現joomla 2.5使用了醃過的哈希,你現在如何處理這些代碼? – 2012-04-11 18:07:21