Sziasztok!
Egy olyan programra lenne szükségem, aminek ha megadok egy reguláris kifejezést, és cserébe a szoftver kiadja az összes rá illeszkedő stringet (mondjuk adott hosszúságig)
A konkrét feladat egyébként abból állna, hogy találtam pár igen régi, jelszóval védett pdf fájlt, amelyeknek csak körülbelül emlékszem a jelszavára, és ezt a körülbelüliséget reguláris kifejezéssel remekül le tudnám írni.
Pdfcrack-kel próbálkozom jelenleg, de rendes wordlist nélkül csak brute force-olni tudok a teljes kulcstéren belül, ami 18 karakter, a jelszó hossza pedig 9,11,12,13 vagy 14 karakter hosszú. Ez így nem tűnik túl gyors megoldásnak, mivel másodpercenként csak cca 23k jelszót tudok végigpróbálgatni. Mivel ez 396857630598547968 jelszót jelentene, gyakorlatilag a szótárfájl az egyetlen épeszű megoldás (B verzió elővakarni a három éves jegyzeteim közül a papírt, amin rajta van a jelszó)
- 1134 megtekintés
Hozzászólások
az aktuális probléma annyiban megoldódott, hogy táblázatkezelő függvényekkel előállítottam a listákat. Annyiból nem, hogy a jelszóra nem tudtam így se rájönni :-/
- A hozzászóláshoz be kell jelentkezni
" aminek ha megadok egy reguláris kifejezést, és cserébe a szoftver kiadja az összes rá illeszkedő stringet"
Hát, ez így első közelítésben a grep lesz, de felteszem valahol lennie kell egy sunyi peremfeltételnek, mert erre magadtól is rájöttél volna. :-)
- A hozzászóláshoz be kell jelentkezni
Huh? És a grep hogy fogja numennek legenerálni mondjuk a [0-9]rzk regexpből a 0rzk, 1rzk, 2rzk, 3rzk, 4rzk, 5rzk, 6rzk, 7rzk, 8rzk, 9rzk stringeket?
--
Don't be an Ubuntard!
- A hozzászóláshoz be kell jelentkezni
Így van :) A grepet ismerem, viszont én most nem sorokra szeretnék szűrni, hanem azt szeretném, hogy ha megadom, hogy /a[ab]{2}a/ akkor kiadja hogy "aaaa, aaba, abaa, abba", mindennemű egyéb fájl megadása nélkül.
Tudom, hogy vannak kifejezések, amelyekre végtelen sok string illeszkedik, de mivel egy véges lista előállítása a célom, most éppen nem ilyeneket szeretnék tesztelni :)
—-—-—
int getRandomNumber() {
return 4;//szabályos kockadobással választva.
} //garantáltan véletlenszerű. xkcd
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Perl forumokon viszonylag rendszeresen elojon ez a kerdes, es az egyszeru valasz az, hogy felejtsd el es probald a problemadat megoldani mashogy. Ha megis a nehez utat valasztod, akkor javaslom nezd meg ezeket:
Regexp::Genex (alpha code)
String::Random
Mark Jason Dominus: Higher Order Perl, chapter 6.5
egy relevans perlmonks.org thread
- A hozzászóláshoz be kell jelentkezni
Köszönöm a választ, kb. ilyenre gondoltam, csak nem volt ötletem, hogy hogy kell rákeresni.
A szótárfájl-generálásra pont megfelelő, bár mint lentebb említettem, végül alternatív módon korábban elkészítettem a szótárfájlt, eredménytelenül.
—-—-—
int getRandomNumber() {
return 4;//szabályos kockadobással választva.
} //garantáltan véletlenszerű. xkcd
- A hozzászóláshoz be kell jelentkezni