CGI

Oct 19 08:29

Perl MD5 Cracker

lol. Works
#!/usr/bin/perl use Digest::MD5 'md5_hex'; @char = ('a'..'z', 'A'..'Z',0..9,'`','-','=','~','!','@','$','%','^', '&','*','(',')','_','+','{','}','|',':','"','<','>',' '); print "Enter the MD5 hash...\n"; chomp($hash = <STDIN>); $hash =~ s/^\s+//g; $hash =~ s/\s+$//g; &bad_use unless length($hash) eq 32; makelist(); sub makelist { for ($br = 1; $br <= 12; $br++) { for ($len1 = 0; $len1 <= 62; $len1++) { $word[1] = $char[$len1]; for ($len2 = 0; $len2 <= 83; $len2++) { $word[2] = $char[$len2]; if ($br <= 2) { add(@word); } else { for ($len3 = 0; $len3 <= 62; $len3++) { $word[3] = $char[$len3]; if ($br <= 3) { add(@word); } else { for ($len4 = 0; $len4 <= 62; $len4++) { $word[4] = $char[$len4]; if ($br <= 4) { add(@word); } else { for ($len5 = 0; $len5 <= 62; $len5++) { $word[5] = $char[$len5]; if ($br <= 5) { add(@word); } else { for ($len6 = 0; $len6 <= 62; $len6++) { $word[6] = $char[$len6]; if ($br <= 6) { add(@word); } else { for ($len7 = 0; $len7 <= 62; $len7++) { $word[7] = $char[$len7]; if ($br <= 7) { add(@word); } else { for ($len8 = 0; $len8 <= 62; $len8++) { $word[8] = $char[$len8]; if ($br <= 8) { add(@word); } else { for ($len9 = 0; $len9 <= 62; $len9++) { $word[9] = $char[$len9]; if ($br <= 9) { add(@word); } else { for ($len10 = 0; $len10 <= 62; $len10++) { $word[10] = $char[$len10]; if ($br <= 10) { add(@word); } else { for ($len11 = 0; $len11 <= 62; $len11++) { $word[11] = $char[$len11]; if ($br <= 11) { add(@word); } else { for ($len12 = 0; $len12 <= 62; $len12++) { $word[12] = $char[$len12]; if ($br <= 12) { add(@word); } else { for ($len13 = 0; $len13 <= 62; $len13++) { $word[13] = $char[$len13]; if ($br <= 13) { add(@word); } else { for ($len14 = 0; $len14 <= 62; $len14++) { $word[14] = $char[$len14]; if ($br <= 14) { add(@word); }}}}}}}}}}}}}}}}}}}}}}}}}}}}} sub add { @entry = @_; $ascii = join "", @entry; $md5 = md5_hex $ascii; print $md5."\n"; if ($md5 eq $hash){ print "\nFound Hash: ".$ascii."\n\n"; exit; } } sub bad_use { print "Enter a valid hash\n"; exit; }