0

Php121 Messengerを既存の Web サイトに組み込もうとしています。ウェブサイトはusercakeアカウントを使用しています。

パスワードの md5 暗号化のタイプが原因で、パスワードを認識しません。

Usercake はこのタイプの暗号化を使用します

function generateHash($plainText, $salt = null)
{
if ($salt === null)
{
    $salt = substr(md5(uniqid(rand(), true)), 0, 25);
}
else
{
    $salt = substr($salt, 0, 25);
}

return $salt . sha1($salt . $plainText);
}

これは、ユーザーを認証するための php121 メッセンジャーの関数です。すべてのデータベース設定が正しく、ユーザー名は検出されますが、ハッシュ形式が原因でパスワードが一致しません

function userLookup($username, $password) {
global $php121db, $password;
global $db_usertable, $dbf_uid, $dbf_uname, $dbf_upassword, $dbf_passwordtype, $dbf_uemail;
global $dbf_user_chatting, $dbf_smilies, $dbf_level, $dbf_showrequest;
global $dbf_upassword_len;

    $stop = "";
    if (mysql_num_rows(mysql_query("SELECT $dbf_uname FROM $db_usertable WHERE $dbf_uname='$username'",$php121db)) == 0) $stop .= _USERNAME_NOT_FOUND . "<br>";
    if ($stop == ""){
            $row = mysql_fetch_row(mysql_query("SELECT $dbf_upassword from $db_usertable WHERE $dbf_uname='$username'", $php121db));
    if ($dbf_passwordtype == "md5") {
        if ($row[0] != substr(md5($password), 0, $dbf_upassword_len)) $stop .= _INCORRECT_PASSWORD . "<br>";
    } else if ($dbf_passwordtype == "plaintext") {
        if ($row[0] != substr($password, 0, $dbf_upassword_len)) $stop .= _INCORRECT_PASSWORD . "<br>";
    }
    else if ($dbf_passwordtype == "salted") { 
if ($row[0] != substr(md5(uniqid(rand(), true)), 0, 25)) $stop .= _INCORRECT_PASSWORD . "<br>"; 

 }
}
return($stop);
}

md5ハッシュを比較する方法を理解する必要があります

http://forums.php121.com/viewtopic.php?t=1162

joomlaに使用されているこのようなものを使用しようとしましたが、うまくいきませんでした。

任意の支援をいただければ幸いです。

ありがとう

4

0 に答える 0