Hogyan generáljam le az összes előállítható karakterkombinációt?
Egy string értékét szeretném úgy változtatni, hogy ha a végtelenségig futna, akkor minden lehetséges betűsorozat egyik pillanatban pont a string tartalma volt.
Tehát először "a" lenne az értéke
aztán b,c,...,z, aa, ... az, aaa ......
Egyszerűen nem tudok erre jó algoritmust írni. Valaki segítene?
A string utolsó karakterét "növeled eggyel".
Ha z->a átmenet volt, akkor az előtte lévő karaktert is.
Az első két lépést ismétled az egész stringre a végétől az elejéig.
Ha a legelső karakteren is z->a átmenet volt (zzzzz-ből aaaaa lett), akkor hozzáfűzöl még egy a-t.
Egy generátor a legjobb megvalósítása ennek.
Amúgy igen, netto baromság az ötlet is.
Csak nem az autoites barátunk az?
Egyébként lehet nagy meglepetés lesz, de a hash függvények egyirányúak, azaz nem fogod tudni megmondani miből kódolták.
Találhatsz egy értéket, aminek ez a hash-e (de nem brute force-szal, hanem szivárványtáblával), de az semmit nem mond arról, hogy eredetileg mi volt az érték.
Adva van egy hash érték. És a feladat leírása csak annyit mond, hogy találjuk meg azt a karaktersorozatot, amelyikből generálták, méghozzá úgy, hogy minden lehetséges kombinációt próbáljunk ki. És azért lehet ezt használni, mert így garantáltan meg fogja találni azt a szót, aminek a kódolt értéke az adott hash érték, amit megadtak.
Tehát le kell generálni szisztematikusan a lehetséges kombinációkat és megnézni, hogy annak a hash értéke megegyezik-e a megadottéval.
Csak sajnos hülye vagyok hozzá, hogy hogyan lehetne előállítani, mármint egy változó állapota folyamatosan változna és körbejárná az összes lehetséges kombinációt.
Tudom, hogy nem valami hatásos, de sajnos ez a feladat, és ha sikerülne előállítani az összeset, akkor már minden meg lenne hozzá. Csak sajnos kevés vagyok ahhoz, hogy egy ilyen algoritmust írjak, ilyan alacsony szintű dolgokkal már rég nem kellett foglalkoznom, ami elég nagy szégyen, de reméltem, hogy van itt nálam valami okosabb ember, aki adna valamilyen tippet vagy többet.
Ha egy ilyen egyszerű algoritmus megírásához kevés vagy, akkor már érthető, hogy miért nem érted azt, amit a #7-es vaálaszoló írt.
Tegyük fel, hogy van egy 40 karakter hosszú hashed. Azt állítod, hogy kizárólag a hash ismeretében meg tudod állapítani, hogy melyik karaktersorozatból szakították?
Kedvenc mondat: "rég nem foglalkoztam ilyen alacsony szintű feladattal" :D
(Értem én hogy absztrakciós szintre gondolsz, de akkor is vicces :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!