Abecední výčet kombinací písmen

HackForum

Abecední výčet kombinací písmen#
Ahoj rozhodl jsem se udělat vlastní MD5 cracker, který by fungoval tak, že by vždy vyzkoušel určitý řetězec, převedl jej do šifry MD5 a ten porovnal se zadanou šifrou, pokud by byly shodné, vrátil by se ten řetězec. Problém je v tom, že neznám metodu, která by postupně procházela jednotlivé kombinace písmen, tedy: AAAA, AAAB,AAAC, AAAD...až ZZZZ, nemáte někdo tuto funkci v jazyce C# (či podobném?). Za případnou pomoc díky.
(odpovědět)
Amo. | 88.102.234.*16.5.2008 23:54
re: Abecední výčet kombinací písmen#
co třeba:


char[] str = new char[4];
for (str[0] = 'A'; str[0] < 'Z'; str[0]++)
{
for (str[1] = 'A'; str[1] < 'Z'; str[1]++)
{
for (str[2] = 'A'; str[2] < 'Z'; str[2]++)
{
for (str[3] = 'A'; str[3] < 'Z'; str[3]++)
{
nejaka_funkce(str);
}
}
}
}


... nebo libovolně podobně?

----------
Get enlightened!
(odpovědět)
mr.Crow | E-mail | Website17.5.2008 0:59
re: Abecední výčet kombinací písmen#
:D
(odpovědět)
ask@t | E-mail | ICQ 200-358-16817.5.2008 9:04
re: Abecední výčet kombinací písmen#
tys zas hulil ne? :D

----------
..:@]> [link] <[@:..
(odpovědět)
DjH | E-mail | Website | ICQ 319-960-89517.5.2008 11:33
re: Abecední výčet kombinací písmen#
mr. Crow: díky, tohle mě taky napadlo, ale je to nepoužitelné, protože nevíš, kolik písmen potřebuješ, v tvym případě natvrdo dosadíš do zdrojáku určitý počet cyklů, ale ten se nemusí rovnat počtu písmen. Tohle se dělá přes rekurzi, akorát to chce na to přijít jak.
(odpovědět)
Amo. | 88.102.234.*17.5.2008 12:51
re: Abecední výčet kombinací písmen#
v C neumim ale co vim tak rekurce je nechutne pomala... co třeba do zdrojaku nejdřiv dosadit kod kterej bude zkoušet jedno pismeno. jestli sem to dobře pochopil mohl by vypadat asi takhle:
char[] str = new char[4];
for (str[0] = 'A'; str[0] < 'Z'; str[0]++)
{
nejaka_funkce(str);
}

a když nenajdeš match tak pokračovat se dvema pismeny. asi takto:
char[] str = new char[4];
for (str[0] = 'A'; str[0] < 'Z'; str[0]++)
{
for (str[1] = 'A'; str[1] < 'Z'; str[1]++)
{
nejaka_funkce(str);
}
}

a takhle pokračovat až třeba do 8 (vic pismen stejně asi nema smysl... trvalo by to hrozně dlouho...)

btw: vim že je to asi prasarna ale nic lepsího me nenapada...

----------
Punk will never be dead to me. It's my life. I can never just drop this lifestyle. It embodies me.
(odpovědět)
|>011'/ | E-mail17.5.2008 13:23
re: Abecední výčet kombinací písmen#
Bóožéeee...
(odpovědět)
gugumaa | 195.113.79.10/10.0.10.*20.5.2008 17:53
re: Abecední výčet kombinací písmen#
Tohle jsem kdysi zkousel resit pomoci prevodu mezi soustavama. Udelat si cyklus, kterej int postupne zveda o jednicku, prevadi ho na dejme tomu 50tkovou soustavu (v pripade ze chces zkusit treba 50 ruznych tisknutelnych znaku a ne jen pismena) a vysledek posila funkci na prevod do MD5?


----------
public static void main(String args[]){
 throw new UnsupportedOperationException("Not implemented!");
}


(odpovědět)
pr0ph3t17.5.2008 18:15
re: Abecední výčet kombinací písmen#
Něco podobného jsem zkoušel kdysi dávno, když jsem se začínal učit Pascal. Tenkrát jsem ještě neuměl ani operace s řetězcema, tak to trochu habrovalo. Kdybych to dneska zkoušel v Pythonu, bylo by to o něčem jiném.


(odpovědět)
Bystroushaak | E-mail | Website | PGP18.5.2008 15:40
re: Abecední výčet kombinací písmen#
Ja to mel ( a asi i jeste nekde mam) napsany v C. Funkce na prevod do MD5 se da najit nekde na googlu, takze neni problem si z toho pak udelat generator MD5 hashu, bruteforce cracker, nebo cokoliv podobneho.
Dneska uz si s takovejma primitivnima vecma nehraju ;-)

----------
public static void main(String args[]){
 throw new UnsupportedOperationException("Not implemented!");
}


(odpovědět)
pr0ph3t18.5.2008 22:22
re: Abecední výčet kombinací písmen#
Což v C# k tomu slouží metoda Encrypt třídy MD5, takže mám vystaráno, mě jen zajímala ta rekurze
(odpovědět)
Amo. | 77.48.14.*19.5.2008 9:30
re: Abecední výčet kombinací písmen#
udělej to tak, že cyklicky měníš písmena A až Z jen posledního znaku, pokud budeš už na Z, zavolej funkci f1 na první písmeno, která nastaví A na první znak + posune druhý znak o jedno místo dál (např. C->D), pokud už je druhé písmeno Z, zavoláš tu funkci na f2 na druhé písmeno, ta nastaví A + posune třetí písmeno, pokud třetí písmeno je Z ... tady máš rekurzi ;) ... program skončí, pokud se zavolá funkce f1 rekurzivně tolikrát, kolik potřebuješ maximálně znaků.

----------
Get enlightened!
(odpovědět)
mr.Crow | E-mail | Website19.5.2008 11:04
re: Abecední výčet kombinací písmen#
a nechces si radsi stahnout hotovej md5 cracker?
(odpovědět)
nejkid | 213.220.192.*20.5.2008 14:10
re: Abecední výčet kombinací písmen#
Kdyby si ho chtěl stáhnout tak tady asi nebude zakládat vlákno o jeho vytváření, ale použije google..
(odpovědět)
Bystroushaak | E-mail | Website | PGP20.5.2008 16:43
re: Abecední výčet kombinací písmen#
Tak se nerozciluj :) byla to jen narazka na jeho algoritmizacni schopnosti a jestli se na to nechce radsi vysrat :)
(odpovědět)
nejkid | 89.24.4.*23.5.2008 10:49
re: Abecední výčet kombinací písmen#
Tohle mi tetka vyskocilo v RSS :) tak to snad pomuze.
Zkousel jsem to a funguje to.
Dokonce si muzes asi zvolit, z kolika znaku se maji vysledne kombinace skladat.
Zdrojak je tam v PHP, Cecku a Jave:

[link]
(odpovědět)
Míra | 88.146.210.*20.5.2008 18:43
re: Abecední výčet kombinací písmen#
Míra: díky, použil jsem to ve svém programu, stáhnout si ho můžete zde: [link]
(odpovědět)
Amo. | 88.102.234.*23.5.2008 12:37
re: Abecední výčet kombinací písmen#
Je to fajn.
Zadám hash, nastavím počty písmen, zmáčknu "Rozluštit a celé to zatuhne, svítí přesýpací hodiny a nic s tím nejde dělat.
Takhle se píšou programy :o)

Jo, a ještě to zobrazuje nějaké .NET varování ohledně bezpečnosti, fakt super.
(odpovědět)
gugumaa | 195.113.79.10/10.0.10.*23.5.2008 13:32
re: Abecední výčet kombinací písmen#
Zatuhne to, protože to počítá, ale až to přijde na výsledek, tak to vytuhne (o:
(odpovědět)
Amo. | 88.102.234.*23.5.2008 14:39

Zpět
Svou ideální brigádu na léto najdete na webu Ideální brigáda
 
 
 

 
BBCode