Hej!
Odnosnie dyskusji zapoczatkowanej przez ble34 - jakby ktos chcial sobie wygenerowac rainbow-tables do md5 albo lamac hashe metoda brute-force, to bardzo prosze... Skrypt jest prosty, banalnie prosty, nie jest optymalny w zadnym kierunku (a na pewno nie wydajnosci czy tez szybkosci dzialnia), jego napisanie zajelo doslownie kilka minut.
Na maszynach DualCore i podobnych (oraz na prawdziwych SMP jak znam zycie) dziala na 1 CPU, nie posiada mozliwosci okreslenia zakresu lamania hasel (zacznij od .... skoncz na ....) co umozliwiloby puszczanie fragmentow na roznych maszynach, itd... Kazde uruchomienie liczy od nowa dla kazdej dlugosci hasla, wiec generowanie hasha dla 5 znakow oznacza generowanie rowniez dla 1, 2, 3 i 4 znakow...
Jedyny parametr jaki pobiera (zreszta nie jest obowiazkowy) to dlugosc hasla. Zakres znakow to wszystko co udalo mi sie wpisac z klawiatury, czyli:
Kod:
1234567890-=!"£$%^&*()_+qwertyuiop[]QWERTYUIOPasdfghjkl;'#ASDFGHJKL:@~zxcvbnm,./ZXCVBNM<>?\|`¬
... jak widac nie ma znaku euro ale ma spacje 
Kod na koncu ale dla Waszej wiedzy - rozmiar wynikow:
- 1 znak - 2 444 bajtow
- 2 znaki - 243 580 bajtow (~243.5kB)
- 3 znaki - 23 247 422 bajtow (~23.25MB)
- 4 znaki - jeszcze generuje... ale patrzac na tempo przyrostu, mozna szacowac ze nastepny plik bedzie 100x wiekszy (ouch!) co idzie w parze z iloscia znakow dopuszczonych w hasle
Kod:
#!/usr/bin/perl
$|++;
use strict;
use Digest::MD5 qw(md5_base64);
my $chars = $ARGV[1] || qw(1234567890-=!"£$%^&*()_+qwertyuiop[]QWERTYUIOPasdfghjkl;'#ASDFGHJKL:@~zxcvbnm,./ZXCVBNM<>?\|`¬);
my @chars_arr = split(//, $chars);
push @chars_arr, ' ' if defined $ARGV[2];
my $len = $ARGV[0] || 1;
&count($len-1);
sub count {
my $gen = $_[0];
my $base = $_[1];
if ($gen > 0) {
for (my $z=0; $z<=$#chars_arr; $z++) {
&count ($gen-1, $base . $chars_arr[$z]);
}
} else {
for (my $z=0; $z<=$#chars_arr; $z++) {
my $str = $base . $chars_arr[$z];
print md5_base64($str) . " $str\n";
}
}
}
Jesli ktos czegos nie rozumie w zakresie obslugi programu to najwidoczniej nie jest to program dla niego. Milej zabawy...
UWAGA:
Program dostarczam "as-is". Uzywasz programu na wlasna odpowiedzialnosc!