Is het mogelijk om MD5 Hasheshes te decoderen?

Iemand heeft me verteld dat hij softwaresystemen heeft gezien die:

  1. Haal MD5-gecodeerde wachtwoorden van andere systemen op;
  2. decoderen de gecodeerde wachtwoorden en
  3. Bewaar de wachtwoorden in de database van het systeem met behulp van het eigen algoritme van het systeem.

is dat mogelijk? Ik dacht dat het niet mogelijk / haalbaar was om MD5 Hasheshes te decoderen.

Ik weet dat er MD5-woordenboeken zijn, maar is er een daadwerkelijk decoderingsalgoritme?


1, Autoriteit 100%

Nee. MD5 is geen codering (hoewel het kan worden gebruikt als onderdeel van enkele versleutelingsalgoritmen), het is een enkele manier HASH-functie . Veel van de originele gegevens is eigenlijk “verloren” als onderdeel van de transformatie.

Denk hierover na: een MD5 is altijd 128 bits lang. Dat betekent dat er 2 128 mogelijke MD5-hashes zijn. Dat is een redelijk groot aantal, en toch is het absoluut eindig. En toch zijn er een oneindig aantal mogelijke inputs aan een gegeven hash-functie (en de meeste van hen bevatten meer dan 128 bits, of een miezerige 16 bytes). Er zijn dus eigenlijk een oneindig aantal mogelijkheden voor gegevens die aan dezelfde waarde zouden hebben. Het ding dat Hashes interessant maakt, is dat het ongelooflijk moeilijk is om twee stukken gegevens te vinden die aan dezelfde waarde hebben, en de kans dat het gebeurt per ongeluk bijna 0.

Een eenvoudig voorbeeld van een (zeer onveilige) hashfunctie (en dit illustreert het algemene idee dat het eenrichtingsverkeer is) zou zijn om alle bits van een stuk gegevens te nemen en het als een groot aantal te behandelen. Voer vervolgens deling van gehele getallen uit met een groot (waarschijnlijk priemgetal) nen neem de rest (zie: Modulus). U blijft achter met een getal tussen 0 en n. Als u dezelfde berekening opnieuw zou uitvoeren (op elk moment, op elke computer, waar dan ook), met exact dezelfde string, zal het dezelfde waarde opleveren. En toch is er geen manier om erachter te komen wat de oorspronkelijke waarde was, aangezien er een oneindig aantal getallen is dat exact dezelfde rest heeft, wanneer gedeeld door n.

Dat gezegd hebbende, is gebleken dat MD5 enkele zwakke punten heeft, zodat het met wat complexe wiskunde mogelijk is om een botsing te vinden zonder 2128mogelijke invoerstrings uit te proberen. En het feit dat de meeste wachtwoorden kort zijn en mensen vaak gemeenschappelijke waarden gebruiken (zoals “wachtwoord” of “geheim”) betekent dat je in sommige gevallen redelijk goed kunt raden naar iemands wachtwoord door te Googlen naar de hash of een Regenboogtabel. Dat is een reden waarom u altijd “salt” wachtwoorden moet hashen, zodat twee identieke waarden, wanneer ze worden gehasht, zullen niet naar dezelfde waarde worden gehasht.

Als een stuk data eenmaal een hash-functie heeft doorlopen, is er geen weg meer terug.


Antwoord 2, autoriteit 35%

Dat kan niet – in theorie. Het hele punt van een hash is dat het maar een manier is. Dit betekent dat als iemand erin slaagt om de lijst met hashes te krijgen, ze nog steeds je wachtwoord niet kunnen krijgen. Bovendien betekent het dat zelfs als iemand hetzelfde wachtwoord op meerdere sites gebruikt (ja, we weten allemaal dat we dat niet zouden moeten doen, maar…) iedereen met toegang tot de database van site A zal het wachtwoord van de gebruiker niet kunnen gebruiken op site B.

Het feit dat MD5 een hash is, betekent ook dat er informatie verloren gaat. Voor een bepaalde MD5-hash, als u wachtwoorden van willekeurige lengte toestaat, kunnen er meerdere wachtwoorden zijn die dezelfde hash produceren. Voor een goede hash zou het rekenkundig onhaalbaar zijn om ze te vinden voorbij een vrij triviale maximale lengte, maar het betekent dat er geen garantieis dat als je een wachtwoord vindt dat de doelhash heeft, dit zeker het originele wachtwoord is. Het is astronomisch onwaarschijnlijkdat u twee ASCII-wachtwoorden van redelijke lengte ziet die dezelfde MD5-hash hebben, maar het is niet onmogelijk.

MD5 is een slechte hash om te gebruiken voor wachtwoorden:

  • Het is snel, wat betekent dat als je een “doel”-hash hebt, het goedkoop is om veel wachtwoorden te proberen en te zien of je er een kunt vinden die naar dat doel hasht. Salten helpt niet bij datscenario, maar het maakt het wel duurder om te proberen een wachtwoord te vinden dat overeenkomt met een van de meerderehashes met verschillende salts.
  • Ik geloof dat het gebreken heeft gekend die het gemakkelijker maken om botsingen te vinden, hoewel het vinden van botsingen binnen afdrukbare tekst (in plaats van willekeurige binaire gegevens) op zijn minst moeilijker zou zijn.

Ik ben geen beveiligingsexpert, dus ik zal geen concrete aanbeveling doen die verder gaat dan ‘Gebruik je eigen authenticatiesysteem niet’. Zoek er een van een gerenommeerde leverancier en gebruik die. Zowel het ontwerp als de implementatie van beveiligingssystemen is een lastige zaak.


Antwoord 3, autoriteit 12%

Technisch gezien is het ‘mogelijk’, maar onder zeer strikte voorwaarden(regenboogtabellen, brute forcing gebaseerd op de zeer kleine kans dat het wachtwoord van een gebruiker in die hashdatabase staat).

Maar dat betekent niet dat het

  • Levensvatbaar
    of
  • Beveiligd

Je wilt een MD5-hash niet ‘omkeren’.Als u de hieronder beschreven methoden gebruikt, hoeft u dat nooit te doen. Het ‘omkeren’ van MD5 wordt eigenlijk als kwaadaardigbeschouwd – een paar websites bieden de mogelijkheid om MD5-hashes te ‘kraken’ en bruteforceren – maar het zijn allemaal enorme databases met woordenboekwoorden, eerder ingediende wachtwoorden en andere woorden. Er is een zeer kleine kansdat de MD5-hash die u nodig heeft, wordt omgekeerd. En als je de MD5-hash gezoutenhebt werk ook! 🙂


De manier waarop aanmeldingen met MD5-hashing zou moetenwerken is:

Tijdens registratie:

Gebruiker maakt wachtwoord -> Wachtwoord wordt gehasht met MD5 -> Hash opgeslagen in database

Tijdens inloggen:
Gebruiker voert gebruikersnaam en wachtwoord in -> (Gebruikersnaam gecontroleerd) Wachtwoord is gehasht met MD5 -> Hash wordt vergeleken met opgeslagen hash in database

Als ‘Wachtwoord vergeten’ nodig is:

2 opties:

  • Gebruiker heeft een willekeurig wachtwoord gestuurd om in te loggen en wordt vervolgens afgeluisterd om het te wijzigen bij de eerste keer inloggen.

of

  • Gebruiker wordt een link gestuurd om hun wachtwoord te wijzigen (met extra controle als u een beveiligingsvraag / enz.) En dan wordt het nieuwe wachtwoord hashed en vervangen door het oude wachtwoord in de database

4, Autoriteit 7%

Niet rechtstreeks. Vanwege de pigehole principe is er (waarschijnlijk) meer dan één waarde die Hashes op een gegeven MD5 is uitvoer. Als zodanig kun je het met zekerheid niet omdraaien. Bovendien is MD5 gemaakt om het moeilijk te maken om een zo’n omgekeerde hash te vinden (er zijn echter aanvallen die produceren Botsingen – dat wil zeggen twee waarden die hash naar hetzelfde resultaat, maar u kunt niet controleren wat de resulterende MD5-waarde zal zijn).

Als u echter de zoekruimte beperkt tot bijvoorbeeld gemeenschappelijke wachtwoorden met lengte onder n, heeft u mogelijk niet langer de onroerend goed voor irreversibiliteit (omdat het aantal MD5-uitgangen veel groter is dan het aantal snaren in het domein van interesse). Dan kunt u een regenboogtabel of vergelijkbaar met achteruithaken.


5, Autoriteit 3%

Niet mogelijk, althans niet in een redelijke hoeveelheid tijd.

De manier waarop dit vaak wordt afgehandeld, is een wachtwoord “reset”. Dat wil zeggen, je geeft ze een nieuw (willekeurig) wachtwoord en stuur ze dat in een e-mail.


6, Autoriteit 3%

U kunt een MD5-wachtwoord niet terugkeren. (In elke taal)

Maar u kunt:

Geef aan de gebruiker een nieuwe.

Check in wat regenboogtafel om misschien de oude op te halen.


7, Autoriteit 2%

Nee, hij moet in de war zijn over de MD5-woordenboeken.

Cryptografische hashes (MD5, enz…) zijn eenrichtingsverkeeren u kunt niet teruggaan naar het oorspronkelijke bericht met alleen de samenvatting tenziju een andere informatie over het oorspronkelijke bericht, enz. die u niet zou moeten hebben.


Antwoord 8, autoriteit 2%

Decryptie (direct de platte tekst ophalen van de gehashte waarde, op een algoritmische manier), nee.

Er zijn echter methoden die gebruikmaken van een zogenaamde regenboogtabel. Het is redelijk mogelijk als uw wachtwoorden zonder zout worden gehasht.


Antwoord 9, autoriteit 2%

MD5 is een hash-algoritme, u kunt de hash-waarde niet terugdraaien.

Je moet de functie ‘wachtwoord wijzigen’ toevoegen, waarbij de gebruiker een ander wachtwoord geeft, de hash berekent en deze als een nieuw wachtwoord opslaat.


Antwoord 10, autoriteit 2%

Er is geen gemakkelijke manier om het te doen. Dit is een beetje het punt van het hashen van het wachtwoord in de eerste plaats. 🙂

Eén ding dat u moetkunnen doen, is handmatig een tijdelijk wachtwoord voor hen instellen en dat naar hen verzenden.

Ik aarzel om dit te vermelden omdat het een slecht idee is (en het is toch niet gegarandeerd dat het werkt), maar je zou kunnen proberen de hash op te zoeken in een regenboogtabel zoals milw0rmom te zien of je het oude wachtwoord op die manier kunt herstellen.


Antwoord 11

Bekijk hier alle andere antwoorden over hoe en waarom het niet omkeerbaar is en waarom je dat sowieso niet zou willen.

Voor de volledigheid zijn er echter regenboogtabellenwaarop je mogelijke overeenkomsten kunt opzoeken. Er is geen garantie dat het antwoord in de regenboogtabel het originele wachtwoord is dat door uw gebruiker is gekozen, dus dat zou hem in grote verwarring brengen.

Dit werkt ook niet voor gezouten hashes. Saltingwordt aanbevolen door veel beveiligingsexperts.


Antwoord 12

MD5 wordt als defect beschouwd, niet omdat je de originele inhoud van de hash kunt terughalen, maar omdat je met werk twee berichten kunt maken die hash naar dezelfde hash maken.

Je kunt een MD5-hash niet un-hashen.


Antwoord 13

Er is geen manier om een hash-functie te “terugdraaien” in termen van het vinden van de inverse functie ervoor. Zoals eerder vermeld, is dit het hele punt van het hebben van een hash-functie. Het mag niet omkeerbaar zijn en het moet een snelle berekening van de hash-waarde mogelijk maken. Dus de enige manier om een invoerstring te vinden die een bepaalde hashwaarde oplevert, is door alle mogelijke combinaties uit te proberen. Dit wordt om die reden een brute force-aanval genoemd.

Het uitproberen van alle mogelijke combinaties kost veel tijd en dit is ook de reden waarom hash-waarden worden gebruikt om wachtwoorden op een relatief veilige manier op te slaan. Als een aanvaller toegang heeft tot uw database met alle gebruikerswachtwoorden erin, verliest u in ieder geval. Als je hash-waarden en (ideaal gesproken) sterke wachtwoorden hebt, zal het voor de aanvaller een stuk moeilijker zijn om de wachtwoorden uit de hash-waarden te halen.

Het opslaan van de hash-waarden is ook geen prestatieprobleem, omdat het berekenen van de hash-waarde relatief snel gaat. Dus wat de meeste systemen doen, is de hash-waarde berekenen van het wachtwoord dat de gebruiker heeft ingetoetst (wat snel is) en deze vervolgens vergelijken met de opgeslagen hash-waarde in hun gebruikersdatabase.


Antwoord 14

Je kunt online tools vinden die een woordenboek gebruiken om het oorspronkelijke bericht op te halen.

In sommige gevallen kan de woordenboekmethode gewoon nutteloos zijn:

  • als het bericht is gehasht met een SALT-bericht
  • als het bericht meer dan één keer hash is

Hier is bijvoorbeeld een MD5-decrypteronline tool.


Antwoord 15

Het enige dat werk kan zijn, is (als we vermelden dat de wachtwoorden gewoon gehasht zijn, zonder enige vorm van zout toe te voegen om de herhalingsaanvallen te voorkomen, als dat zo is, moet je het zout kennen) trouwens, ontvang een woordenboekaanvaltool, de bestanden van veel woorden, getallen enz. Maak vervolgens twee rijen, één rij is woord, nummer (in woordenboek) de andere is hash van het woord, en vergelijk de hashes als overeenkomsten je het krijgt …

dat is de enige manier, zonder in cryptanalyse te gaan.


Antwoord 16

Ja, precies waar u om vraagt, is mogelijk.
Het is niet mogelijk om een MD5-wachtwoord te ‘decoderen’ zonder hulp, maar het is wel mogelijk om een MD5-wachtwoord opnieuw te coderen in een ander algoritme, alleen niet alles in één keer.

Wat u doet is ervoor zorgen dat uw gebruikers kunnen inloggen op uw nieuwe systeem met het oude MD5-wachtwoord. Op het moment dat ze inloggen, hebben ze je inlogprogramma een niet-gehashteversie van het wachtwoord gegeven waarvan je aantoont dat het overeenkomt met de MD5-hash die je hebt. U kunt dit niet-gehashte wachtwoord vervolgens converteren naar uw nieuwe hash-algoritme.

Dit is natuurlijk een uitgebreid proces omdat u moet wachten tot uw gebruikers u vertellen wat de wachtwoorden zijn, maar het werkt wel.

(NB: zeven jaar later, ach hopelijk vindt iemand het nuttig)


Antwoord 17

Nee, dat kan niet. U kunt ofwel een woordenboek gebruiken, of u kunt proberen verschillende waarden te hashen totdat u de hash krijgt die u zoekt. Maar het kan niet worden “ontsleuteld”.


Antwoord 18

MD5 heeft zijn zwakke punten (zie Wikipedia), dus er zijn enkele projecten die proberen hashes vooraf te berekenen. Wikipedia verwijst ook naar sommige van deze projecten. Een die ik ken (en respecteer) is ophrack. U kunt de gebruiker niet zijn eigen wachtwoord vertellen, maar u kunt hem misschien een wachtwoord vertellen dat werkt. Maar ik denk: mail gewoon een nieuw wachtwoord voor het geval ze het vergeten zijn.


Antwoord 19

Het MD5 Hash-algoritme is niet omkeerbaar, dus MD5-decoderen in niet mogelijk, maar sommige website hebben een bulk set van wachtwoordmatch, zodat u online kunt proberen om te decoderen MD5 HASH.

Probeer online:

MD5 decrypt

MD5Online

MD5Decrypter


20

In theorie Het is niet mogelijk om een ​​hash-waarde te decoderen, maar u hebt wat vuile technieken om de originele platte tekst terug te krijgen.

  1. Bruteforcing : Alle Computer Security Algoritme lijden bruteforcing . Op basis van dit idee heeft de GPU van vandaag het idee van parallelle programmering met behulp waarmee het de duidelijke tekst kan terugkrijgen door massaal bruteforcing te maken met behulp van elke grafische processor. Deze tool Hashcat doet deze taak. De laatste keer controleerde ik de cuda versie van het, ik was in staat om een ​​7-letterig karakter te hebben binnen zes minuten.
  2. Internet Search : Kopieer en plak en plak de hash op Google en kijk of je de bijbehorende plainent-tekst daar kunt vinden. Dit is geen oplossing als je een Pentesting bent, maar het is zeker het proberen waard. Sommige websites houden de hash voor bijna alle woorden in het woordenboek.

21

MD5 is een cryptografische (one-way) hash-functie, dus er is geen directe manier om het te decoderen. Het hele doel van een cryptografische hash-functie is dat u het niet ongedaan kunt maken.

Een ding die je kunt doen is een brute-force-strategie, waar je denkt wat Hashed was, dan hash het met dezelfde functie en kijk of het overeenkomt. Tenzij de hashed-gegevens heel gemakkelijk te raden zijn, kan het al lang duren.


22

Het is nog niet mogelijk om een ​​hash van een wachtwoord in een algoritme in te zetten en het wachtwoord terug te krijgen in platte tekst omdat hashing een enkele manier is. Maar wat mensen hebben gedaan is om hashes te genereren en het in een grote tabel op te slaan, zodat wanneer u een bepaalde hash invoert, het tabel controleert op het wachtwoord dat overeenkomt met de hash en die wachtwoord naar u toestaat. Een voorbeeld van een site die dat doet http://www.md5online.org/ . Modern wachtwoord-opslagsysteem telt dit met behulp van een zoutalgoritme zodanig dat wanneer u hetzelfde wachtwoord in een wachtwoorddoos invoert tijdens registratie verschillende hashes wordt gegenereerd.


23

Nee, u kunt de MD5 niet decoderen / omkeren, omdat het een eenrichtingshash-functie is totdat u geen uitgebreide kwetsbaarheden in de MD5 kunt vinden.
Nog een manier is er dat een website heeft een grote hoeveelheid set wachtwoorddatabase, zodat u online kunt proberen om uw MD5- of SHA1 Hash-string te decoderen.
Ik probeerde een website like http://www.mycodemyway.com/encrypt-and-decrypt/md5 en het werkt prima voor mij, maar dit hangt helemaal af Op uw HASH Als die HASH in die database is opgeslagen, kunt u de daadwerkelijke reeks krijgen.

Other episodes