загрузка скинов ( хэш скрипта ) ошибка

Akimm007

Активный участник
Пользователь
Баллы
63
В общем проблема такова.
Есть файл в котором пароли и логины к примеру
Код:
test:$SHA$3fcec89bba61c254$4939f183a4420bd7923f35f7591445d96288cf81fdfcd475dc248bffbb63e0d3
где test это логин а $SHA$..... пароль
как я понял он хэширован в SHA1
а вот скрипт который проверяет логин пароль
Код:
<?php

if ((isset($_POST[name])) and (isset($_POST[pwd])))
{
    if($_FILES['userfile']['error']) { die("\nFile uploading failed.\n"); }

    $name = $_POST[name];
    $pwd = (string)hash('sha1', $_POST[pwd]);

    $fp = @fopen("auths.txt", "r"); // Открываем файл в режиме чтения
    if ($fp)
    {
        while (!feof($fp))
        {
            $line = fgets($fp, 999);
            list($aname,$apwd) = preg_split("/[:\n\r]/", $line);

            if (strtolower($name) == strtolower($aname)) {
                // found player
                @fclose($fp);
                if (strCaseCmp($pwd, $apwd) != 0) {
                    die("wrong password");
                }

                $imageinfo = getimagesize($_FILES['userfile']['tmp_name']);
                if($_FILES['userfile']['type'] != "image/png") {
                    die("\nSorry, we only allow uploading PNG images");
                } elseif($imageinfo['mime'] != 'image/png') {
                    die("\nSorry, we only accept PNG images");
                } elseif (!preg_match("/\.(png)$/i", $_FILES['userfile']['name'])){
                    // не пускаем этот файл
                    die("\nWe do not allow uploading PHP files");
                }

                $uploaddir = './';
//                $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
                $uploadfile = $uploaddir . $aname.".png";

                if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
                echo "\nOK.\n";
                } else {
                    echo "\nFile uploading failed.\n";
                }
                exit;
            }
        }
        echo $name." player not found in database";
        @fclose($fp);
    }
    else die("Ошибка при открытии файла");
    die();
}
?>
<html>
<head>
<title>Minecraft Skin's uploader</title>
</head>
<body>
<form enctype="multipart/form-data" name="Minecraft_Skins" method="post" action=<?$_SERVER['PHP_SELF']?>>
<input type="text" id="name" name="name" value="Player name" onFocus="this.value=''">
<br/>
<input type="text" id="pwd" name="pwd" value="Password" onFocus="this.value=''">
<br />
<input type="file" name="userfile" ACCEPT="image/png"/>
<br /><br/>
<input type="submit" value="Upload">
</form>
</body>
</html>

При вводе логина и пароля (test 1234 ) выдает wrong password .Хм где накосячил ?)
 
Ну почему так всегда...Только создаю тему и тут же понимаю как сделать...Сделал через md5.А то было не SHA1 , а SHA256 , но и с SHA256 не хотело.Тему можно закрыть
 
authme =)
http://dev.bukkit.org/server-mods/authme/pages/website-integration/

Код:
$encryptedPassword = "\$SHA\$".$salt."\$".hash('sha256', hash('sha256', ($_POST[pwd])).$salt);

а $salt нужно брать из строки юзера в дб-файле:
Код:
list($str1,$str2,$salt,$str3) = explode("\$", $apwd);

а Тебе + за форму загрузку
 
Назад
Верх Низ