1. PHP / Говнокод #17448

    +167

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    final public static function getSomething($version_line = "pro") {
    		$default_domain = domainsCollection::getInstance()->getDefaultDomain();
    
    		if($_SERVER['SERVER_ADDR']) {
    			$cs2 = md5($_SERVER['SERVER_ADDR']);
    		} else {
    			$cs2 = md5(str_replace("\\","",$_SERVER['DOCUMENT_ROOT']));
    		}
    		     
    		switch($version_line) {
    			case "pro":
    				$cs3 = md5(md5(md5(md5(md5(md5(md5(md5(md5(md5($default_domain->getHost()))))))))));
    				break;
    
    			case "free":
    				$cs3 = md5(md5(md5($default_domain->getHost())));
    				break;
    
    			case "lite":
    				$cs3 = md5(md5(md5(md5(md5($default_domain->getHost())))));
    				break;
    
    			case "freelance":
    				$cs3 = md5(md5(md5(md5(md5(md5(md5($default_domain->getHost())))))));
    				break;
    				
    			case "trial": {
    				$cs3 = md5(md5(md5(md5(md5(md5($default_domain->getHost()))))));
    			}
    		}
    
    		$licenseKeyCode = strtoupper(substr($cs2, 0, 11) . "-" . substr($cs3, 0, 11));
    		return $licenseKeyCode;
    	}

    сложная система нипель

    Запостил: deconf, 15 Января 2015

    Комментарии (17) RSS

    • Недостаточно секурно, на самом деле. Я бы в цикле применил md5 еще как минимум 20 раз.

      Чем больше раз ты сделаешь md5, тем более секурная твоя система. Есть правда такая фишка что при переносе проекта в другую папку или при смене IP адреса сервера админом все ключи ебнутся, но это мелочь
      Ответить
      • И то верно. Нужно привязывать ключи к серийному номеру БИОСа или к MAC-адресу сетевой карты. А ещё лучше требовать LPT-ключ.
        Ответить
        • В современных машинах с ACPI биос (ну или ефи) умеет считать hardware signature. Когда операционка просыпается из хибернейта (s4) она проверяет не изменилась ли hardware signature. И если изменилась, то надо делать полную загрузку.

          Так вот: именно hardware signature и надо использовать. Переставил сетевую карту в другой слот? Вот и лицензция слетела.
          Ответить
          • Кстати, а как это работает на VPS?
            Ответить
            • Наверное зависит от реализации VPS. Я не очень знаю как работают современные виртуалки под x86 (там же не тупо PC эмулируется целиком, а как-то процессор знает что есть HOST и Guest), всё собираюсь про это почитать как-нибудь. Если там вообще работает хибернейт, то та часть реализации виртукалки, которая отвечает за интерфейсы BIOS должна создать ACPI таблицы в памяти и запонить их нужной информацией.

              Операционка при старте сканирует память в специальной области, находит там сигнатуру главной таблицы, вычисляет из нее адреса других таблиц (их пол сотни разных) , и в одной из них находит hardware signature.
              Ответить
      • Если применить md5 достаточное число раз, то можно найти неподвижную точку. И один ключ будет подходить всем. Уха-ха-ха!
        Ответить
        • Вероятность попасть в неподвижную точку где-то 1/2^100 если не больше. Вероятность существования этой самой точки вообще 63%.
          Что интересно все только говорят об этой чудесной точке, считают вероятности и тырят известный подсчёт вероятностей. Но никто её не наблюдал, по крайней мере примера такой точки обычно не никто приводит.
          Ответить
          • Спасибо, я знаю.
            Ответить
          • Так вот о какой точке, оказывается, спорили по ссылке: http://holywars.ru/comments/4719
            Ответить
          • кстати, поговаривают, что неподвижная точка не только существует, но и представляет собой валидную программу на Perl
            Ответить
            • Кстати, те кто поговаривают тоже представляют собой валидную программу на Perl
              Ответить
          • О какой точке речь? Джи?
            Ответить
        • На самом деле если достаточное количество раз использовать md5, то можно получить много интересного. Например Ответ На Самый Главный Вопрос или увидеть лицо Бога.
          Ответить
    • получить что-нибудь
      Ответить
      • Еще меня радуют аргументы по умолчанию в таких функциях/методах. Неверный вызов не заметит никто и никогда.
        Ответить
    • вообще это umi.cms господа)
      Ответить

    Добавить комментарий