Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "[Архив] Помощь", создана пользователем Akimm007, 30 сен 2011.

  1. Автор темы
    Akimm007

    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 .Хм где накосячил ?)
     
    МиднайтЖелаетВамДобра и kosh нравится это.
  2. Хостинг MineCraft
    <
  3. Автор темы
    Akimm007

    Akimm007 Активный участник

    Баллы:
    63
    Ну почему так всегда...Только создаю тему и тут же понимаю как сделать...Сделал через md5.А то было не SHA1 , а SHA256 , но и с SHA256 не хотело.Тему можно закрыть
     
  4. kosh

    kosh Старожил Пользователь

    Баллы:
    103
    Skype:
    ambassadorkosha
    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);
    а Тебе + за форму загрузку
     
  5. Автор темы
    Akimm007

    Akimm007 Активный участник

    Баллы:
    63
    Спасибо , но уже сделал)
     

Поделиться этой страницей