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.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.
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).