Diskuze: algoritmus na všechny možnosti

Java Java algoritmus na všechny možnosti

Aktivity (1)
Avatar
mara
Člen
Avatar
mara:31.1.2015 14:57

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):31.1.2015 15:09

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:31.1.2015 15:32

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:31.1.2015 16:04

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:31.1.2015 16:11

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ý:31.1.2015 16:12

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:31.1.2015 16:18

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
Odpovídá na Neaktivní uživatel
Josef Kuchař (Pepa489):31.1.2015 16:22

Od kdy je podle tebe java rychlá ? :D

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ý:31.1.2015 16:37

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:31.1.2015 16:40

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
Odpovídá na Josef Kuchař (Pepa489)
Neaktivní uživatel:31.1.2015 17:02

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):31.1.2015 18:35

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:31.1.2015 19:02

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 Test Case
mara:31.1.2015 20:47

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:31.1.2015 22:10

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:1.2.2015 9:47

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:1.2.2015 10:55

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.