which r way more better...
This cracker simply tries different hashes...
Code: Select all
#!/usr/bin/perl
#makelist code copied because im too lazy to type it out, although slightly modified
#leet style, w00t w00t
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;
}