Kezdőoldal » Számítástechnika » Programozás » Egy primitív pár kb-os exe...

Egy primitív pár kb-os exe kiterjesztésű programot vissza lehet bontani?

Figyelt kérdés
például ha be kell írni egy kódot és ugye valamivel össze kell hasonlítania a programnak hogy megegyezik e vagy sem, de ha vissza bontják a programot, kiderülhet a kód.

2012. júl. 16. 23:53
1 2 3
 11/22 anonim ***** válasza:

Na ha már többször hangsúlyoztátok, akkor megszólalok én is. :)

Az md5 már nem tekinthető biztonságosnak. :)

Ha nincs benne semmilyen "sózás", akkor sajnos már megtalálták a gyengéjét, amivel jelentősen rövidebb idő alatt lehet találni egy jelszót ami az adott hash kódot adja. (Mert mivel ugye hash, nem kell a pontos jelszót tudni, elég egy hasonlót, ami ugyan azt az eredményt adja. Emiatt kell a sózás, hogy nehezebb legyen ilyet találni.)


Na meg egyre nagyobbak az online md5 adatbázisok, ha "szerencsés" a támadó, akkor egy ilyenben már benne van az adott hash érték és a hozzá tartozó kulcs.

2012. júl. 17. 19:19
Hasznos számodra ez a válasz?
 12/22 anonim ***** válasza:

"Mert mivel ugye hash, nem kell a pontos jelszót tudni, elég egy hasonlót, ami ugyan azt az eredményt adja"


Azt ugye te sem gondolod komolyan, hogy két különböző jelszónak AZONOS lenne a HASH-e. Ezzel bukna az egész mutatvány. Egy jelszó, egy HASH. Egy rövid jelszóból - és akár hosszúból is - egy 32 karakteres HASH készül. Maximum akkor fordulna elő HASH egyezés ha MINDENKI kizárólag 32 karakteresnél hosszabb jelszót használna, amit ugye belátunk, hogy közel sem így van, tehát sose lesz egyezés... Olyannyira nem lesz egyezés, hogy ha beírsz egy 8 karakteres jelszót és azt összehasonlítod egy másik 8 karakteressel, ahol csak egy karakter az eltérés a jelszavak között, akkor a HASH teljesen más lesz, semmiben nem hasonlít a hasonló jelszó HASH-éhez...



"egyre nagyobbak az online md5 adatbázisok"


Ezek az adatbázisok max húszmillió HASH jelszót tartalmaznak. (Ez az egyik legnagyobb [link] ezen van jelenleg 15 millió jelszó. Ha belegondolsz, hogy 32 karakterből hányféle variációt lehet kihozni, akkor ez a 15 millió konkrétan egy csepp az óceánban, mert 32 karakter bármelyik variációja a tízmilliónak - ami NYOLC számjegy - a sokszázmilliárdszorosa, mivel az egy HARMINCHAT jegyű szám. Ezek az adatbázisok ebből a szempontból elhanyagolhatóak.


Még mindig azt mondom, hogy ESÉLYTELEN...

2012. júl. 17. 19:37
Hasznos számodra ez a válasz?
 13/22 iostream ***** válasza:

"Azt ugye te sem gondolod komolyan, hogy két különböző jelszónak AZONOS lenne a HASH-e."


Könnyed logikai gyakorlatként, szavakból végtelen sok van, 32 karakteres szavakból pedig véges sok. Ha egy függvény minden szóhoz rendel egy 32 karakterest, akkor vajon lehet-e a függvény injektív? Nem, nem lehet.

2012. júl. 17. 19:51
Hasznos számodra ez a válasz?
 14/22 coopper ***** válasza:

Kérdező : Ha kész a "Helló Word" exe-d ami jelszóval van levédve (MD5 hash), ha felrakod a netre szivesen eljátszadozok vele.


Fehersrac : MD5 hash : itt elég sok van belőle, szerintem ez több mint 15 millió : [link]


Üdv.

2012. júl. 17. 19:53
Hasznos számodra ez a válasz?
 15/22 anonim ***** válasza:

Nézzük sorban:


"szavakból végtelen sok van, 32 karakteres szavakból pedig véges sok"


Ez így van. A 32 karakteres HASH-ekből egy akkora összeg jön ki amiben 48 számjegy van. Segítek:

999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999

azt hiszem sok szó van, persze végtelen, de azért én nem tartom valószínűnek, hogy ez a kimondhatatlan nagy szám túlcsordulna egyhamar... Matematikailag persze igazad van...


Másik válaszoló:


A linkelt oldalon lehet hogy a 15 millió egymilliószorosa is fent van. ez 15 ezer milliárd HASH. Ez még mindig töredéke a fent leírt számnak... Hajrá, még 1000 év és fent lesz mind :)

2012. júl. 17. 20:02
Hasznos számodra ez a válasz?
 16/22 anonim ***** válasza:

iostream-nek:


Ez a 32 karakteres HASH lefedi kb az ÖSSZES 30 karakternél nem hosszabb jelszót. 30 karakternél hosszab jelsztó meg kevesen adnak. Ha majd az lesz a "divat" és meg is jegyzi valaki, akkor visszatérünk a HASH-ek végességére...

2012. júl. 17. 20:08
Hasznos számodra ez a válasz?
 17/22 anonim ***** válasza:

Hehe ugyan azt akartam írni amit iostream, hidd el ő jobban ért hozzá.

Ha azt gondolod, hogy nincs egyezés, akkor nem érted, hogy mi az a hashelés.


[link]

Idézek: "A végtelenből végesbe történő leképzés miatt egyértelmű, hogy eltérő fájltartalom is eredményezhet azonos hash kulcsot. A kellően nagyra választott hash kulcs esetén azonban ilyen ütközés rendkívül ritka."

(Direkt idéztem a 2 mondatot.)


A jó hash függvényt pont olyan, ahogy te is írtad, hogy a legkisebb eltérésre is teljesen más értéket ad és lehetőleg mindig más értéket adjon, de ez fizikailag képtelenség.

Az md5 pedig maga hosszban annyira nem nagy és ráadásul jött már több matematikai megoldás, amivel szűkíthető a kipróbálandó jelszavak halmaz, azaz egy megfelelő megtalálásához kevesebb próba is elég!



Valamint nem, nem fedi el az összes rövid jelszót sem!

2012. júl. 17. 20:11
Hasznos számodra ez a válasz?
 18/22 anonim ***** válasza:

De ha nekünk nem hiszel, akkor még: [link]


"1996-ban felfedeztek egy nem súlyos hibát az MD5 kódjában"


"2004-ben további biztonsági rések láttak napvilágot, ami még inkább megkérdőjelezte az MD5 használatának megbízhatóságát"

2012. júl. 17. 20:13
Hasznos számodra ez a válasz?
 19/22 A kérdező kommentje:

coopper! persze hogy nem a hello word-ot akartam védeni az md5-el :D de azért itt egy c# forráskód


using System;

using System.Security.Cryptography;

using System.Text;


class Example

{


static string getMd5Hash(string input)

{


MD5 md5Hasher = MD5.Create();



byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));



StringBuilder sBuilder = new StringBuilder();



for (int i = 0; i < data.Length; i++)

{

sBuilder.Append(data[i].ToString("x2"));

}



return sBuilder.ToString();

}



static bool verifyMd5Hash(string input, string hash)

{


string hashOfInput = getMd5Hash(input);



StringComparer comparer = StringComparer.OrdinalIgnoreCase;


if (0 == comparer.Compare(hashOfInput, hash))

{

return true;

}

else

{

return false;

}

}



static void Main()

{

string source = "Hello World!";


string hash = getMd5Hash(source);


Console.WriteLine("The MD5 hash of " + source + " is: " + hash + ".");

Console.ReadKey();

}

}

2012. júl. 17. 20:27
 20/22 A kérdező kommentje:
ezzel lehet játszani
2012. júl. 17. 20:28
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!