Kezdőoldal » Számítástechnika » Internet » Neten azt olvasom, hogy az...

Neten azt olvasom, hogy az MD5 karakterkódolás csak egy irányú. De akkor hogyan működnek az online dekódolók illetve birok-e csinálni én Php-ban egy ilyen függvényt?

Figyelt kérdés

[link]

Az ilyen és ehhez hasonló oldalakra gondolok.


Példa hash: d4f7244fb96d61178079a60400da9511

Fenti linken már meg is kaptam, hogy az eredeti string "capaci".


md5($myString). Ilyen egyszerű odafele.


Arra lennék kíváncsi van e valami megoldás Php-ban arra, hogy egy MD5 karakterkódolt stringnek megkapjam mi volt az eredeti kódolás előtti szövege.


md5_reverse($hashedString) - valami ilyesmi. Persze konkrétan ez tudom, hogy nem létezik.


Tudom, hogy mondjuk egy bejelentkezésnél a felhasználó által begépelt stringet kódolják, majd ezt összehasonlítják az adatbázisban lévő, már kódolt stringel. ÉS ha passzol akkor bejelentkeztet az oldalra.



2021. jan. 17. 22:38
1 2
 11/12 anonim ***** válasza:

Még egy kis dolog: Ugye azt már fent leírták, hogy a hash függvények egyirányúak (nem is lenne reális visszafejthetőnek lennie így hogy egy 1GB filera is 16 bytenyi kimenetet ad, hiszen akkor egy ultrakirály tömörítés lenne, ami képtelenség)


Az online visszafejtő oldalak azért tűnhetnek működőnek, mert vannak ugyebár olyan oldalak ahol "enkódolni" és "dekódolni" is tudsz hasheket. Ilyen az is amit küldtél a kérdésben.


Na ezek közül sok (pl amit küldtél az is) azt csinálja, hogy ha bekódolsz egy szöveget mondjuk egy MD5 hash-be, akkor a szótárukhoz (szivárványtáblájukhoz) egyből hozzá is adják a szöveget amit beírtál az eredmény hashel együtt, így onnantól azonnal dekódolni tudják majd a hashedet (de előtte nem tudták volna!)


Ezért is nem érdemes ilyen oldalakat használni érzékeny adatokra.


Másik lehetőség a "dekódolásra" a bruteforce attack, de ezt nem szokták alkalmazni az ilyen online ingyenes dekóderek, mert idő- és erőforrásigényes. Lényegében elkezded próbálgatni a lehetőségeket, pl. a kisbetűs szövegek körében, mindegyiket behasheled, pl. "capacg", "capach", majd egyszercsak kijön, hogy az md5("capaci") === "d4f7244fb96d61178079a60400da9511". Vagy elég csak azokat végigpróbálgatni amik benne vannak egy szótárban (ami nem feltétlen szivárványtábla, mert abban a hash is ott van a szöveg mellett, így annak a kiszámítását is megspóroljuk, így sokkal gyorsabb) -> dictionary attack

2021. jan. 18. 10:20
Hasznos számodra ez a válasz?
 12/12 anonim ***** válasza:
U.I.: és éppen azért nem érdemes jelszavakat MD5-be kódolni, mert sokkal gyorsabb mint a direkt jelszótárolásra készített hashek (argon2, bcrypt, stb.) így a dictionary és bruteforce támadások jóval gyorsabban végrehajthatóak. (A szivárványtábla ellen, mint előttem is írták, saltot kell használni, de ezt a jelszóhashelő könyvtárak mint pl PHP password_hash automatikusan elintézik)
2021. jan. 18. 10:26
Hasznos számodra ez a válasz?
1 2

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!