我在下面找到Cracking Md5哈希的代码:(来自:aboulton.blogspot.com.tr
)
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 :(得分:1)
您的计划不知道DigestUtils代表什么。
您需要导入它,或从appache公共jar下载codec并将其作为外部jar引用到您的项目中并随后导入
答案 1 :(得分:1)
...这是破解和查找解码MD5哈希的好方法或类?
它会有效吗?一般来说,可能不是。
有340,282,366,920,938,463,463,374,607,431,768,211,456可能的不同MD5哈希值。如果您有任意字符串或文档的MD5哈希值,那么在Google搜索结果中找到该哈希值的可能性就会非常小。
事实上,很明显Google的搜索引擎无法指出超过可能的MD5哈希值的微不足道的一小部分。根据{{3}},“大4”互联网公司估计2013年的存储容量约为1,200PB。这是因为存储所有可能的MD5哈希值太小了~10 20
但是,如果您可以确定一个用例,其中相关字符串和MD5哈希值之间的映射系统地在网页中发布,那么这种方法可能适用于那些字符串。如果有人在Google索引的页面中发布了映射,那么其中一个用例就是电子邮件地址的MD5哈希值。