Miklix

JOAAT Hashcodecalculator

Gepubliceerd: 18 februari 2025 om 00:19:54 UTC

Hashcodecalculator die de Jenkins One At A Time (JOAAT) hashfunctie gebruikt om een hashcode te berekenen op basis van tekstinvoer of geüpload bestand.

Deze pagina is machinaal uit het Engels vertaald om hem voor zoveel mogelijk mensen toegankelijk te maken. Helaas is machinevertaling nog geen geperfectioneerde technologie, dus er kunnen fouten optreden. Als je dat liever hebt, kun je hier de originele Engelse versie bekijken:

JOAAT Hash Code Calculator

De JOAAT (Jenkins One At A Time) hashfunctie is een niet-cryptografische hashfunctie die is ontworpen door Bob Jenkins, een bekende computerwetenschapper op het gebied van hashingalgoritmen. Het wordt veel gebruikt vanwege de eenvoud, snelheid en goede distributie-eigenschappen, waardoor het effectief is voor hashtabelopzoekingen, checksums en data-indexering. Het geeft een 32-bits (4-byte) hashcode uit, die doorgaans wordt weergegeven als een hexadecimaal getal van 8 cijfers.

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.


Nieuwe Hashcode berekenen

Gegevens die via dit formulier worden verzonden of bestanden die via dit formulier worden geüpload, worden niet langer op de server bewaard dan nodig is om de gevraagde hashcode te genereren. Ze worden onmiddellijk verwijderd voordat het resultaat naar uw browser wordt teruggestuurd.

Invoergegevens:



De ingediende tekst is UTF-8 gecodeerd. Aangezien hashfuncties werken op binaire gegevens, zal het resultaat anders zijn dan wanneer de tekst in een andere codering zou zijn. Als je een hash moet berekenen van een tekst in een specifieke codering, moet je in plaats daarvan een bestand uploaden.



Over het JOAAT-hashalgoritme

Ik ben geen wiskundige, maar ik zal proberen deze hashfunctie uit te leggen met behulp van een analogie die mijn mede-niet-wiskundigen kunnen begrijpen. Als u de voorkeur geeft aan een wetenschappelijk correcte, volledige wiskundige uitleg, dan weet ik zeker dat u die elders kunt vinden ;-)

Denk aan JOAAT alsof je een speciale soep maakt. Je hebt een lijst met ingrediënten (dit zijn je invoergegevens, zoals een woord of een bestand) en je wilt ze op zo'n manier mengen dat zelfs als je maar één klein ding verandert - zoals een snufje zout toevoegen - de smaak van de soep compleet verandert. Deze "smaak" is je hashwaarde, een uniek nummer dat je invoer vertegenwoordigt.

De JOAAT-functie doet dit in vier stappen:

Stap 1: Beginnen met een lege pot (initialisatie)

Je begint met een lege pot soep. In JOAAT begint deze "pot" met het getal 0.

Stap 2: Ingrediënten één voor één toevoegen (elke byte verwerken)

Nu voegt u uw ingrediënten één voor één toe. Stel u voor dat elke letter of elk cijfer in uw gegevens is alsof u een andere specerij aan de pot toevoegt.

  • Voeg de kruiden toe (voeg de waarde van de letter toe aan je pot).
  • Roer krachtig (vermeng het door de smaak te verdubbelen met een speciale roerbeweging - dit is een soort wiskundige 'verschuiving').
  • Voeg een verrassende wending toe (voeg er een snufje willekeur aan toe - dit is de XOR-bewerking, die helpt de mix te verwarren).

Stap 3: Laatste geheime kruiden (laatste menging)

Nadat je alle ingrediënten hebt toegevoegd, roer je nog een paar keer geheim en schud je de kruiden om ervoor te zorgen dat de smaak onvoorspelbaar is. Dit is waar JOAAT een paar laatste mix-and-scramble-stappen uitvoert om ervoor te zorgen dat het resultaat uniek is.

Stap 4: Smaaktest (Output)

Ten slotte proef je de soep - of in JOAAT's geval krijg je een getal (de hashwaarde) dat de unieke smaak van je soep vertegenwoordigt. Zelfs de kleinste verandering in ingrediënten (zoals het veranderen van één letter in je invoer) geeft je een compleet andere smaak (een compleet ander getal).

Delen op BlueskyDelen op FacebookDelen op LinkedInDelen op TumblrDelen op XDelen op LinkedInPin op Pinterest

Mikkel Bang Christensen

Over de auteur

Mikkel Bang Christensen
Mikkel is de bedenker en eigenaar van miklix.com. Hij heeft meer dan 20 jaar ervaring als professioneel computerprogrammeur/softwareontwikkelaar en werkt momenteel fulltime voor een groot Europees IT-bedrijf. Als hij niet blogt, besteedt hij zijn vrije tijd aan een breed scala aan interesses, hobby's en activiteiten, die tot op zekere hoogte weerspiegeld kunnen worden in de verscheidenheid aan onderwerpen op deze website.