Шифрование MD5(MD5(...)) - дубль два :)

Wicked

Новичок
Шифрование MD5(MD5(...)) - дубль два :)

по следам давнишней темы - http://phpclub.ru/talk/showthread.php?postid=608989#post608989

ковырялся мимоходом в исходниках пхп... а там, в md5crypt.c, оказывается, вот что... :)))

PHP:
  /*
   * And now, just to make sure things don't run too fast. On a 60 MHz
   * Pentium this takes 34 msec, so you would need 30 seconds to build
   * a 1000 entry dictionary...
   */
  for (i = 0; i < 1000; i++) {
    PHP_MD5Init(&ctx1);

    if ((i & 1) != 0)
      PHP_MD5Update(&ctx1, (const unsigned char *)pw, pwl);
    else
      PHP_MD5Update(&ctx1, final, 16);

    if ((i % 3) != 0)
      PHP_MD5Update(&ctx1, (const unsigned char *)sp, sl);

    if ((i % 7) != 0)
      PHP_MD5Update(&ctx1, (const unsigned char *)pw, pwl);

    if ((i & 1) != 0)
      PHP_MD5Update(&ctx1, final, 16);
    else
      PHP_MD5Update(&ctx1, (const unsigned char *)pw, pwl);

    PHP_MD5Final(final, &ctx1);
  }
 

Alexandre

PHPПенсионер
Код:
 time_t  t1;
  timeval tv1,tv2;
  unsigned char md5sum[16];
  gettimeofday( &tv1, NULL);
            
  md5( (unsigned char *) "md5_test_str[i]",
        strlen( "md5_test_str[i]" ), md5sum );
  gettimeofday( &tv2, NULL);

  cout << "  time: "<< tv1.tv_usec - tv2.tv_usec << endl;
результат 8 микросекунд : на P-IV 3000
умножаем на 1000 = 8 миллисекунд (10 с преобразованием в строку)

а также к вопросу md5(md5(....)))) - c каждым циклом мы только сужаем пространство поиска (увеличивая коллизию паролей), по этому если использовать адаптированный алгоритм на определенное кол-во итераций - взламывается на ура.
 
Сверху