Diskuze: algoritmus na všechny možnosti

Java Java algoritmus na všechny možnosti

Avatar
mara
Člen
Avatar
mara:

Ahojte, zajímalo by mě, jak by mohl být algoritmus, který zkouší všechny možnosti čísel i písmen. Je zmíněný tady http://www.itnetwork.cz/zabava/crackme1 , ale v C# a moc tomu tam nechápu. Mohl by mě prosím někdo napsat jen čistě ten algoritmus (nejlépe i s komentáři) ?
Děkuji

Odpovědět 31.1.2015 14:57
Co na srdci, to na Facebooku
Avatar
Odpovídá na mara
Josef Kuchař (Pepa489):

Předem tě upozorňuji že java bude hrozně pomalá, zadej do googlu: java bruteforce algorithm ;)

Nahoru Odpovědět  -7 31.1.2015 15:09
2x piš, jednou debuguj
Avatar
mara
Člen
Avatar
mara:

Díky moc :) Můžu se jen zeptat na důvod, proč mu někdo dal - ??

Nahoru Odpovědět 31.1.2015 15:32
Co na srdci, to na Facebooku
Avatar
Odpovídá na mara
Neaktivní uživatel:

To bude tou "pomalou" Javou ;)

Nahoru Odpovědět  +2 31.1.2015 16:04
Neaktivní uživatelský účet
Avatar
mara
Člen
Avatar
Odpovídá na Neaktivní uživatel
mara:

aha :D tak jako já se nehádám, že není pomalá, ani že je :D já jsem zatím dělal jen v javě, tak nemůžu říct, jestli má nebo nemá pravdu :D

Nahoru Odpovědět 31.1.2015 16:11
Co na srdci, to na Facebooku
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Josef Kuchař (Pepa489)
Jan Vargovský:

Brute force je všude pomalé... Si najdi vzorec pro permutace a uvidíš proč :)
EDIT: Jo ty to chceš na hesla, tak v tom případě hledej variace s opakováním.

Editováno 31.1.2015 16:15
 
Nahoru Odpovědět 31.1.2015 16:12
Avatar
mara
Člen
Avatar
Odpovídá na Jan Vargovský
mara:

díky moc, a nevíš o nějaké stránce nejlépe v češtině, kde by to bylo rozebrané ? Nemám moc rád jen tupě zkopírovat něčí kód a nepochopit to. Zatím jsem nenašel ani ten kód, který by dělal to, co potřebuji.
Děkuji moc.

Nahoru Odpovědět 31.1.2015 16:18
Co na srdci, to na Facebooku
Avatar
Nahoru Odpovědět  -6 31.1.2015 16:22
2x piš, jednou debuguj
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na mara
Jan Vargovský:

To nevím, já radši anglické texty. Tohle je ale celkem jednoduché, že najdeš nějaké materiály i v češtině :)

 
Nahoru Odpovědět 31.1.2015 16:37
Avatar
mara
Člen
Avatar
Odpovídá na Jan Vargovský
mara:

dobře zkusím ještě hledat. Zatím jsem nic nenašel :( ale díky moc

Nahoru Odpovědět 31.1.2015 16:40
Co na srdci, to na Facebooku
Avatar
BlugW
Redaktor
Avatar
Nahoru Odpovědět 31.1.2015 16:48
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.eu
Avatar
Odpovídá na Josef Kuchař (Pepa489)
Neaktivní uživatel:

Odkedy som pochopil, ako pracuje "pod kapotou" a čo jej "pomalosť" o ktorej všetci hovoria, spôsobuje. Kľudne si ži v presvedčení, že je pomalá len prosím nepíš veci o ktorých nič nevieš.

Nahoru Odpovědět  +1 31.1.2015 17:02
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Josef Kuchař (Pepa489):

Ale musíš uznat, že C++ bude vždy v bruteforce rychlejší než java

Nahoru Odpovědět  -3 31.1.2015 18:35
2x piš, jednou debuguj
Avatar
Odpovídá na Josef Kuchař (Pepa489)
Neaktivní uživatel:

nie, nebude rýchlejší, prečo by mal byť?

Nahoru Odpovědět 31.1.2015 19:02
Neaktivní uživatelský účet
Avatar
mara
Člen
Avatar
Odpovídá na BlugW
mara:

Díky moc. Je tam hodně odkazů, ale já nevím... Já jsem vůbec nic nenašel, co by mě fungovalo tak, jak potřebuji. Kdybys byl tak hodný a zkopíroval mě kód, který najdeš a funguje ti, tak bych byl moc rád. Mělo by to jít první od délky 1 až výš, dokud to nenajde to, co potřebuji. Děkuji moc.

Nahoru Odpovědět 31.1.2015 20:47
Co na srdci, to na Facebooku
Avatar
mara
Člen
Avatar
mara:

Pořád jsem nic nenašel.... Nenašel by se někdo, kdo umí i javu i C# ?
Tady : http://www.itnetwork.cz/zabava/crackme1 v komentářích je napsaný cracker v C#, tak kdyby to byl někdo schopný předělat do javy, tak bych byl moc rád. Stačí jen ten algoritmus, který postupně vypisuje ty možnosti.
Děkuji

Nahoru Odpovědět 31.1.2015 22:10
Co na srdci, to na Facebooku
Avatar
wgamez101
Člen
Avatar
Odpovídá na mara
wgamez101:

Tu je ten kód ktorý to generuje aj s tým ako to spustiť. Stačí zmeniť maxPocetZnakov na hodnotu koľko znakov potrebuješ generovať.

public static String chars = "0123456789abcdefghijklmnopqrstuvwxyz";

public static String nextArgument(long number) {
    String argument = "";

    long result = number;
    do {
        int r = (int) (result / chars.length());
        long remainder = result % chars.length();
        result = r;
        argument = String.valueOf(chars.charAt((int) remainder)) + argument;
    } while (result != 0);

    return argument;
}

public static void main(String[] args) {
    int maxPocetZnakov = 3;
    String argument;
    long i = 0;
    while (true) {
        argument = nextArgument(i);
        if (argument.length() > maxPocetZnakov)
            break;
        System.out.println(argument);
        i++;
    }
}
Nahoru Odpovědět 1.2.2015 9:47
Inspiration is for amateurs - I just get to work.
Avatar
mara
Člen
Avatar
Odpovídá na wgamez101
mara:

Děkuji moc. Přesně toto jsem hledal.

Nahoru Odpovědět 1.2.2015 10:55
Co na srdci, to na Facebooku
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 18 zpráv z 18.