2016-09-07 2 views
-1

У меня есть SHA256 хэш текст, и я знаю, исходный текст представляет собой строку и состоит из 0-9 чисел и буквами A-Z, A-Z, который находится в диапазоне (000000-Zzzzzz).Оптимизировать SHA256 проверки в PHP

Этот код проверяет все возможные варианты, и возвращает первоначальный текст Этот код работает долгое время (например, если длина строки 5, то он работает 30 минут, для случая, если длина 6 работает 30 * 62 минут) и я думаю, что это не лучшее решение для этого случая. Пожалуйста, помогите оптимизировать его.

$count=0; 
    $start_date =microtime(true); 

$s=array(0,1,2,3,4,5,6,7,8,9,"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"); 
for($g=0;$g<62;$g++) 
{ 
    for($h=0;$h<62;$h++) 
    { 
     for($i=0;$i<62;$i++) 
     { 
      for($j=0;$j<62;$j++) 
      { 
       for($k=0;$k<62;$k++) 
       { 
        for($l=0;$l<62;$l++) 
        { 
         $count++; 
         if (hash("sha256",$s[$g].$s[$h].$s[$i].$s[$j].$s[$k].$s[$l])=='0a482c589594109cea209233a1f3bfa51f8a52e4534c40e9511c6030ee0f594a')// string is ZZZZZZ 
         { 
          echo $s[$g].$s[$h].$s[$i].$s[$j].$s[$k].$s[$l]."<br/>"; 
          echo $count."<br/>"; 
          $end_date =microtime(true); 
          echo ($end_date-$start_date)/60; 
          break(6); 
         } 
        } 
       } 
      } 
     } 
    } 
} 
+1

Вы пытаетесь нарушить шифрование SHA256? –

+1

Также известен как жестокое форсирование. –

+1

Да, это то, на что похоже. Атаки с применением грубой силы обычно используются во вредоносных действиях. Вы не найдете здесь помощи. –

ответ

0

Невозможно оптимизировать его, чтобы разбить 0-9a-zA-Z. Конечно, вы можете немного оптимизировать этот код (также изменить PHP для Python или что-то более быстрое), но только дал вам увеличить от 30 минут до 10 минут на 5 символов. 6 символов требуется около 6 часов. И 7 баллов измерялись в днях. 8 символов в годах и т. Д. Это невозможно сделать быстрее.

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

+0

это не лучшее решение для меня, я хочу сделать это для жало, длина которого 10 – PTuruz

+0

10 длина? О, всего около 10 000 лет. Удачи;) – Damonsson

+0

Вот почему я хочу найти оптимальное решение – PTuruz

Смежные вопросы