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

    +159.2

    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
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    <?php
    function encrypt($str) {
    	$key = array();
    	$dst = array();
    	$i = 0;
    
    	$nBytes = strlen($str);
            	while ($i < $nBytes){
                   	 $i++;
                    	$key[$i] = ord(substr($str, $i - 1, 1));
                    	$dst[$i] = $key[$i];
    	}
    
    	$rslt = $key[1] + $key[2]*256 + $key[3]*65536 + $key[4]*16777216;
    	$one = $rslt * 213119 + 2529077;
    	$one = $one - intval($one/ 4294967296) * 4294967296;
    
    	$rslt = $key[5] + $key[6]*256 + $key[7]*65536 + $key[8]*16777216;
    	$two = $rslt * 213247 + 2529089;
    	$two = $two - intval($two/ 4294967296) * 4294967296;
    
    	$rslt = $key[9] + $key[10]*256 + $key[11]*65536 + $key[12]*16777216;
    	$three = $rslt * 213203 + 2529589;
    	$three = $three - intval($three/ 4294967296) * 4294967296;
    
    	$rslt = $key[13] + $key[14]*256 + $key[15]*65536 + $key[16]*16777216;
    	$four = $rslt * 213821 + 2529997;
    	$four = $four - intval($four/ 4294967296) * 4294967296;
    
    	$key[4] = intval($one/16777216);
    	$key[3] = intval(($one - $key[4] * 16777216) / 65535);
    	$key[2] = intval(($one - $key[4] * 16777216 - $key[3] * 65536) / 256);
    	$key[1] = intval(($one - $key[4] * 16777216 - $key[3] * 65536 - $key[2] * 256));
    
    	$key[8] = intval($two/16777216);
    	$key[7] = intval(($two - $key[8] * 16777216) / 65535);
    	$key[6] = intval(($two - $key[8] * 16777216 - $key[7] * 65536) / 256);
    	$key[5] = intval(($two - $key[8] * 16777216 - $key[7] * 65536 - $key[6] * 256));
    
    	$key[12] = intval($three/16777216);
    	$key[11] = intval(($three - $key[12] * 16777216) / 65535);
    	$key[10] = intval(($three - $key[12] * 16777216 - $key[11] * 65536) / 256);
    	$key[9] = intval(($three - $key[12] * 16777216 - $key[11] * 65536 - $key[10] * 256));
    
    	$key[16] = intval($four/16777216);
    	$key[15] = intval(($four - $key[16] * 16777216) / 65535);
    	$key[14] = intval(($four - $key[16] * 16777216 - $key[15] * 65536) / 256);
    	$key[13] = intval(($four - $key[16] * 16777216 - $key[15] * 65536 - $key[14] * 256));
    
    	$dst[1] = $dst[1] ^ $key[1];
    
    	$i=1;
    	while ($i<16){
    		$i++;
    		$dst[$i] = $dst[$i] ^ $dst[$i-1] ^ $key[$i];
    	}
    
    	$i=0;
    	while ($i<16){
    		$i++;
    		if ($dst[$i] == 0) {
    			$dst[$i] = 102;
    		}
    	}
    
    	$encrypt = "0x";
    	$i=0;
    	while ($i<16){
    		$i++;
    		if ($dst[$i] < 16) {
    			$encrypt = $encrypt . "0" . dechex($dst[$i]);
    		} else {
    			$encrypt = $encrypt . dechex($dst[$i]);
    		}
    	}
    
    	return $encrypt;}

    вот он великий генератор паролей оО
    никто не подберет пароль ))))

    Запостил: bestxp, 06 Апреля 2010

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

    • много букаф
      Ответить
    • точнее шифрователь паролей))) md5 отдыхают)))
      Ответить
    • PHP это среда размножения говнокодеров.
      Ответить
      • вот не правда xD вот не нада тут ляля :)))
        сбить противника с толку вот весело) и пусть потом перебивает все варианты типа md5 sha1 и подобные)
        Ответить
        • Сбить противника с толку это md5($salt.$password). А горожении своих алгоритмов хэширования/шифрования - это говно
          Ответить
          • rainbow таблицы никто не отменял, так что сбрутить теоритически можно что угодно
            Ответить
        • Тут очень короткий ключ генерится, так что простым перебором за сутки находится...
          Ответить
          • подбери за сутки ключик, с условием что ты не знаешь алгоритма шифрования пароля...
            Ответить
            • Да, чет я погарячился, брутфорсом получилось бы что-то около 184467 дней ломать при оптимальном раскладе :)
              Ответить
    • Уличная магия.
      Ответить
    • Жесть как она есть )))
      Ответить
    • многобукафф
      Ответить
    • Алгоритм не придуманый, а скопипастеный откуда-то, надо искать... мне он попадался 5 лет тому назад... делал игрушку - бинго, там таким образом хешировались пароли во флешке... Делал ее какой-то народный умелец - на все руки мастер (восновном ASP + VB), и вот эта штука мне тогда досталсь в наследство.
      У меня есть такое чувство, что это какое-нибудь студенческое задание, которое где-то когда-то находилось по ключу типа "encode password" или что-нибудь такое в гугле. Можно попробовать отыскать, может и причина написания тоже отыщется.
      Ответить
      • ну я не говорил что он мой :))
        но использовать пришлось... в таком виде как на выходе из этого кода хранились пароли в БД одной онлайн игры.
        так вот пират сервер и к нему надо было регу юзверей, и вот там такой алгоритм...
        PS код корейский оО
        Ответить
        • Да тут у нас династия оказывается.
          Два поколения встретились в одном топике.
          Ответить
          • поподробнее пожалуста :))
            Ответить
            • Анонимус: мне он попадался 5 лет тому назад... эта штука мне тогда досталсь в наследство.

              bestxp: ну я не говорил что он мой :)) но использовать пришлось...

              А вообще забавно узнать, есть ли такой говнокод, который живет себе и не парится. Прогеры приходят, уходят, матюкаются, а он смотрит на них и думает: "Забавные они, это прогеры".


              АдЪпусти меня, трава. ))
              Ответить
              • АдЪпусти меня, трава. ))
                нифига еще подсыплю...
                Это был скрипт генерации пароля в аккаунту игрока Lineage2 в базу, для PTS сборок так сказать, он кстати до сих пор не изменился, просто он мне случайно наткнулся пару дней назад)))
                Ответить
    • Похоже это обрезаный XTEA или что-то подобного рода
      Ответить

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