MD2 Hash-codecalculator
Gepubliceerd: 16 februari 2025 om 22:38:33 UTC
Hashcodecalculator die de hashfunctie van Message Digest 2 (MD2) gebruikt om een hashcode te berekenen op basis van tekstinvoer of geüpload bestand.MD2 Hash Code Calculator
De MD2 (Message Digest 2) hashfunctie is een cryptografische hashfunctie die in 1989 door Ronald Rivest is ontworpen. Deze is speciaal geoptimaliseerd voor 8-bits computers. Hoewel deze nu als verouderd en onveilig voor cryptografische doeleinden wordt beschouwd, is deze hier opgenomen voor het geval dat men een achterwaarts compatibele hashcode moet berekenen. Deze mag niet worden gebruikt bij het ontwerpen van nieuwe systemen.
Full disclosure: Ik heb de specifieke implementatie van de hashfunctie die op deze pagina wordt gebruikt niet geschreven. Het is een standaardfunctie die wordt meegeleverd met de programmeertaal PHP. Ik heb alleen de webinterface gemaakt om hem hier voor het gemak publiekelijk beschikbaar te maken.
Over het MD2-hashalgoritme
Ik ben redelijk goed in simpele wiskunde, maar niet extreem goed en beschouw mezelf absoluut niet als wiskundige, dus ik zal proberen uit te leggen hoe deze hashfunctie werkt in termen die niet-wiskundigen kunnen begrijpen. Als je de volledige wiskundige versie prefereert, is die makkelijk genoeg te vinden op veel andere plekken op het web ;-)
Stel je nu voor dat je een recept hebt dat alle ingrediënten (jouw boodschap) neemt en ze altijd in precies één kleine, 16-delige chocoladereep (de hasj) verandert. Het maakt niet uit wat je ingrediënten zijn of hoe groot of klein ze zijn, je eindigt altijd met dezelfde grootte chocoladereep.
Het doel van dit recept is dat:
- Je kunt de ingrediënten niet raden door alleen naar de chocolade te kijken.
- Zelfs een kleine verandering in de ingrediënten zorgt ervoor dat de chocolade compleet anders smaakt. Zo weet je of iemand met de ingrediënten of het recept heeft geknoeid.
Het maken van de chocolade reep bestaat uit drie stappen:
Stap 1: De boodschap opvullen (de ingrediënten passend maken)
Stel dat je een mand hebt met precies 16 appels (of ingrediënten). Maar wat als je maar 14 appels hebt? Dan moet je er nog 2 toevoegen om de mand te vullen. Als je tekort komt, voeg je gewoon extra appels toe. Bijvoorbeeld:
- Als je er nog twee nodig hebt, voeg je er twee appels aan toe.
- Als je er meer dan 16 hebt, moet je de volgende mand vullen. Bijvoorbeeld, als je er 28 hebt, tel je er vier bij op om 32 te krijgen (twee keer 16).
Zo weten we zeker dat elk mandje gevuld is voordat we naar de volgende stap gaan.
Stap 2: Een controlegetal toevoegen (geheime ingrediëntenlijst)
Nu maken we een geheime ingrediëntenlijst op basis van alles wat in het winkelmandje zit.
- Je doorloopt elke mand, bekijkt de appels en schrijft voor elke appel een geheime code op.
- Dit is niet zomaar een kopie. Het is alsof je getallen op een vreemde manier optelt. Als iemand dan stiekem een appel verwisselt, ziet de lijst er nog steeds verkeerd uit.
Met deze lijst kunt u controleren of er later niet met de ingrediënten is geknoeid.
Stap 3: Alles mengen (de Magic Blender)
Nu komt het leukste gedeelte: het mixen!
- U hebt een blender met 48 sleuven.
- Je gooit erin:
- De appels (jouw bericht).
- Een oud mengsel van eerder (begint leeg voor de eerste batch).
- Een mix van de eerste twee dingen.
Dan mix je het. Maar niet één keer. Je mixt het 18 keer, waarbij je de snelheid en richting elke ronde verandert. Dit is geen normaal mixen - elke ronde roert het mengsel op een speciale manier, zodat zelfs één andere appel de hele chocolade anders laat smaken.
De laatste chocolade reep (de hasj)
Na al dat mengen giet je alleen de bovenste 16 stukjes van het mengsel eruit. Dat is je uiteindelijke chocoladereep - de MD2 hash. Het lijkt totaal niet op de originele appels, en als je de originele ingrediënten alleen op basis van de chocolade zou proberen te raden, zou je dat nooit kunnen.
Herinneren:
- Dezelfde ingrediënten = dezelfde chocolade.
- Eén appel vervangen = compleet andere chocolade.
- Je kunt niet teruggaan naar de tijd. Je kunt de originele appels niet herkennen aan de hand van alleen de chocolade.