1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Туториал [урок] привенчиваем проверку md5 к клиенту

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем sashok724, 27 ноя 2011.

  1. ilia770

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

    Баллы:
    63
    парни я знаю как это решить, но мне нужен человек который поможет довести систему до ума!
     
  2. Быстрая раскрутка сервера Minecraft
  3. Lazy

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

    Баллы:
    103
    Можно привязать к лаунчеру, я уверен, что это очень просто, поскольку есть готовая функция, которая возвращает булев. Тот, кто знает джаву - без труда прикрутит.
     
  4. alloc

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

    Баллы:
    63
    а я могу ведь взять эти файлы и кинуть в исходники launcher'а? Или не получится так?
     
  5. Gecsn

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

    Баллы:
    63
    дак что там с тутором?
     
  6. Автор темы
    sashok724

    sashok724 Старожил Девелопер

    Баллы:
    123
    думаю что для паблика слишком жирно
     
  7. Gecsn

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

    Баллы:
    63
    это печально
     
  8. EvgenoID

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

    Баллы:
    68
    Имя в Minecraft:
    EvgenoID
    Интересно... На Win - все пучком.. Mac os - постоянно недоступна игра... minecraf.jar один и тот же...
     
    HoShiMin и ВремяПриключений нравится это.
  9. Dragoy

    Dragoy Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    Dragoy11
    Имя в Minecraft:
    Dragoy
    а на 1.1 также ??
     
  10. EvgenoID

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

    Баллы:
    68
    Имя в Minecraft:
    EvgenoID
    я про 1.1 и говорю.. (((
     
  11. god_killer

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

    Баллы:
    68
    Че то у меня не так. Все сделал, файлы отредактировал. НО как закидываю готовые файлы в маин то старая хеш сумма пропадет, и появляется новая. И опять как изменяю на новую хеш сумму файлы изменяются.
    Какая то путаница получается. Может кто подскажет что да как, лучше сделать
     
  12. ZaRRaZa

    ZaRRaZa Старожил

    Баллы:
    103
    При любой (каждой) модификации любого файла, его хеш меняется.
     
  13. god_killer

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

    Баллы:
    68
    Так я это и имею введу. Что хеш сумма в конфиге будет всегда отличатся и предугадать нельзя
     
    Mr_RoboMan нравится это.
  14. ZaRRaZa

    ZaRRaZa Старожил

    Баллы:
    103
    А что тебе надо?
    Что бы при каждой модификации сумма оставалась одна и та же ?
    Если не секрет зачем тебе это?
     
    Mr_RoboMan, ВремяПриключений и GigA нравится это.
  15. god_killer

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

    Баллы:
    68
    так е мае. тут же типо урок по проверке хеш суммы. Если хеш сумма не совпадает то сетевая игра не доступна.
    Но когда меняется сумма в конфиге то меняется сумма и клиента, и так будет постоянно, а значит сетевая игра будет не доступна
     
    Mr_RoboMan и ВремяПриключений нравится это.
  16. ZaRRaZa

    ZaRRaZa Старожил

    Баллы:
    103
    тут типа урок ты запускаешь лаунчер он проверяет minecraft.jar у него допустим хеш 123
    он отсылает на скрипт хеш 123 скрипт сравнивает с тем какой должен быть, а должен быть 321 скрипт отсылает лаунчеру даныне о том что не правильный хеш, потом лаунчер качает нужный minecraft.jar с хешем 321 и запускает клиент!
     
    Mr_RoboMan нравится это.
  17. wkera

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

    Баллы:
    103
    Работает ли на 1.2.3?
     
  18. EvgenoID

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

    Баллы:
    68
    Имя в Minecraft:
    EvgenoID
    только что сделал, с доработками. Т.к. для unix систем не правильные пути. Все замечательно, на 1.2.3
     
  19. wkera

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

    Баллы:
    103
    Мне кажется, что GuiMainMenu.java отличается в версии 1.2.3 от версии 1.0.0
    з.ы. если рассуждать о прямоте или, наоборот, кривоте рук, то на мой взгляд лучше, если обновит человек, знающий java
     
  20. EvgenoID

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

    Баллы:
    68
    Имя в Minecraft:
    EvgenoID
    GuiMainMenu.java - это лишь интерфейс, главное меня. В нем нет алгоритма игры, и он не влияет на производительность. От 1.0 1.2.3 отличается только строковыми значениями вроде "Minecraft 1.2.3" вместо "Minecraft 1.0"

    Но, выложенная здесь система, не кроссплатформенна. А именно, в Windows хэш проверяется, в *unix (у меня Mac) хеш не проверяется из-за не правильности пути.

    Вчера правил систему. Кому интересно, изменил кусок кода, и теперь все четко и на Win и на *unix. Сразу скажу, я программист, но пишу я не на Java, поэтому, возможно, есть более элегантное решение.


    PHP:
            if(System.getProperty("os.name").startsWith("Windows"))
            {
                
    getJarFolder();
                
    s1 System.getenv("APPDATA");
            } else
            {
                
    getJarFolder();
                
    s1 System.getProperty("user.home");
            }
            
    String s2 getJarFolder();
            
    s2 s2.substring(s2.lastIndexOf(File.separatorChar) + 1);
            if(
    System.getProperty("os.name").startsWith("Windows"))
            {
                
    = (new StringBuilder()).append(s1).append("/.CuboCraft1.2/bin/").append(s2).toString();
                
    MessageDigest messagedigest null;
                try
                {
                    
    messagedigest MessageDigest.getInstance("MD5");
                }
                catch(
    NoSuchAlgorithmException nosuchalgorithmexception)
                {
                    
    nosuchalgorithmexception.printStackTrace();
                }
                
    calc "";
                try
                {
                    
    calc HashFunctionTest.calculateHash(messagedigests);
                }
                catch(
    Exception exception)
                {
                    
    exception.printStackTrace();
                }
                
    check checkMd5(calc.toLowerCase());
                if(!
    check)
                {
                    
    multiplayerButton.enabled false;
                }
            } else
            {
                
    = (new StringBuilder()).append(s1).append("/Library/Application Support/CuboCraft1.2/bin/").append(s2).toString();
                
    MessageDigest messagedigest null;
                try
                {
                    
    messagedigest MessageDigest.getInstance("MD5");
                }
                catch(
    NoSuchAlgorithmException nosuchalgorithmexception)
                {
                    
    nosuchalgorithmexception.printStackTrace();
                }
                
    calc "";
                try
                {
                    
    calc HashFunctionTest.calculateHash(messagedigests);
                }
                catch(
    Exception exception)
                {
                    
    exception.printStackTrace();
                }
                
    check checkMd5(calc.toLowerCase());
                if(!
    check)
                {
                    
    multiplayerButton.enabled false;
                }
            }

    Собственно, сами файлы, можете взять тут >> Link <<
     
    VELVET и wkera нравится это.
  21. wkera

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

    Баллы:
    103
    А как насчет 1.2.4 ?
    Ошибки при компиляции.

    Upd. Сравнил код, guimainmenu переписан, переименованы некоторые функции, следовательно теперь фикс не работает и нуждается в обновлении
     

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