2015-03-26 2 views
-2

я найти ниже код для Крекинг хэшей MD5: (от: aboulton.blogspot.com.tr)Google MD5 взломщик (в Java)

package md5crack; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.URL; 
import java.net.URLConnection; 
import java.util.logging.Level; 
import java.util.logging.Logger; 

/** 
* 
* @author Adam Boulton - Using Google to crack MD5 
*/ 
public class MD5Cracker { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 

     if(args[0] == null || args[0].isEmpty()) 
     { 
      System.out.println("-= Google MD5 Cracker =-"); 
      System.out.println("-= Adam Boulton - 2010 =- "); 
      System.out.println("Usage: MD5crack <hash>"); 
     } 

     String hash = args[0]; 
     String url = String.format("https://www.google.com/search?q=%s", hash); 

     try { 
      URL oracle = new URL(url); 
      URLConnection conn = oracle.openConnection(); 

      //keep Google happy, otherwise connection refused. 
      conn.setRequestProperty("user-agent", "Mozilla/5.0 Windows NT6.1 WOW64 AppleWebKit/535.7 KHTML, like Gecko Chrome/16.0.912.63 Safari/535.7"); 

      BufferedReader in = new BufferedReader(
        new InputStreamReader(
        conn.getInputStream())); 

      String inputLine; 

      while ((inputLine = in.readLine()) != null) { 
       String[] words = inputLine.split("\\s+"); 

       for (String word : words) { 
        String wordHash = DigestUtils.md5Hex(word); 
        if (wordHash.equals(hash)) { 

         System.out.println("[*] Found: " + word); 
         System.exit(0); 
        } 
       } 
      } 

      System.out.println("[!] No results."); 
      in.close(); 

     } catch (IOException ex) { 
      Logger.getLogger(MD5Cracker.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 
} 

, но в этой строке у меня есть сообщение об ошибке:

String wordHash = DigestUtils.md5Hex(word); 

Ошибка: DigestUtils cannot be resolved

Как я могу это исправить?

и это хороший способ или класс для взлома и нахождения декодированного MD5-хэша?

Как мы можем использовать это с оптимизацией на Android?

Спасибо.

+0

Возможно, вам понадобится 'import org.apache.commons.codec.digest.DigestUtils;' – Pshemo

+0

'import org.apache' не может разрешить.error в eclipse. – firefly

+0

Загрузили ли вы и добавили в свой пакет проектов пакет от apache? – Pshemo

ответ

1

Ваша программа не знает, что стоит DigestUtils.

Вам нужно либо импортировать его, или загрузить codec из appache общей баночки и ссылаться на него как внешнюю баночку в свой проект и импортировать его после

1

... и это хороший метод или класс для трещины и найти декодированный MD5-хэш?

Будет ли оно эффективным? В общем, наверное, нет.

Есть 340,282,366,920,938,463,463,374,607,431,768,211,456 возможных различных хешей MD5. Если у вас есть хеш MD5 для произвольной строки или документа, то шансы найти этот хэш в результатах поиска Google исчезающе малы.

Действительно, довольно очевидно, что поисковые системы Google не смогут индексировать более чем незначительную часть возможных хэшей MD5. Согласно this article, «большие 4» интернет-компании, по оценкам, имели ~ 1200 петабайт хранения в 2013 году. Это фактор ~ 10 слишком маленький, чтобы хранить все возможные хеши MD5.

Однако, если вы можете определить прецедент, где сопоставления между соответствующими строками и хешами MD5 систематически публикуются на веб-страницах, тогда этот подход может работать ... для этих строк. Одним из таких прецедентов будет хеш MD5 для адресов электронной почты, если кто-то опубликовал сопоставление на страницах, индексированных Google.

+0

Итак, что вы думаете о растрескивании или декодировании Md5 наилучшим образом и быстро? Tnx – firefly

+1

Без комментариев .... :-). Читайте http://en.wikipedia.org/wiki/MD5. –

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