Miklix

JOAAT Hash Code Calculator

Published: February 10, 2025 at 4:35:54 PM UTC

Hash code calculator that uses the Jenkins One At A Time (JOAAT) hash function to calculate a hash code based on text input or file upload.

The JOAAT (Jenkins One At A Time) hash function is a non-cryptographic hash function designed by Bob Jenkins, a well-known computer scientist in the field of hashing algorithms. It is widely used due to its simplicity, speed, and good distribution properties, making it effective for hash table lookups, checksums, and data indexing. It outputs a 32 bit (4 byte) hash code, typically represented as an 8 digit hexadecimal number.

Full disclosure: I did not write the specific implementation of the hash function used on this page. It is a standard function included with the PHP programming language. I only made the web interface to make it publicly available here for convenience.


Calculate New Hash Code

Data submitted or files uploaded through this form will only be kept on the server for as long as it takes to generate the requested hash code. It will be deleted immediately before the result is returned to your browser.

Input data:



Submitted text is UTF-8 encoded. Since hash functions operate on binary data, the result will be different than if the text was in another encoding. If you need to calculate a hash of a text in a specific encoding, you should upload a file instead.



About the JOAAT Hash Algorithm

I'm not a mathematician, but I'll try to explain this hash function using an analogy that my fellow non-mathematicians can understand. If you prefer a scientifically correct, full-on math explanation, I'm sure you can find that elsewhere ;-)

Think of JOAAT like making a special soup. You have a list of ingredients (this is your input data, like a word or a file), and you want to mix them in such a way that even if you change just one tiny thing - like adding one extra pinch of salt - the flavor of the soup changes completely. This "flavor" is your hash value, a unique number representing your input.

The JOAAT function does this in four steps:

Step 1: Starting with an Empty Pot (Initialization)

You begin with an empty pot of soup. In JOAAT, this "pot" starts with the number 0.

Step 2: Adding Ingredients One at a Time (Processing Each Byte)

Now, you add your ingredients one by one. Imagine every letter or number in your data is like adding a different spice to the pot.

  • Add the spice (add the value of the letter to your pot).
  • Stir vigorously (mix it up by doubling the flavor with a special stirring motion - this is like a mathematical "shift").
  • Add a surprise twist (throw in a pinch of randomness - this is the XOR operation, which helps scramble the mix).

Step 3: Final Secret Spices (Final Mixing)

After you've added all your ingredients, you do a few more secret stirs and spice shakes to make sure the flavor is unpredictable. This is where JOAAT does a few final mix-and-scramble steps to ensure the result is unique.

Step 4: Taste Test (Output)

Finally, you taste the soup - or in JOAAT's case, you get a number (the hash value) that represents the unique flavor of your soup. Even the tiniest change in ingredients (like changing one letter in your input) will give you a completely different flavor (a totally different number).

Share on BlueskyShare on FacebookShare on LinkedInShare on TumblrShare on XShare on LinkedInPin on Pinterest

Mikkel Bang Christensen

About the Author

Mikkel Bang Christensen
Mikkel is the creator and owner of miklix.com. He has over 20 years experience as a professional computer programmer/software developer and is currently employed full-time for a large European IT corporation. When not blogging, he spends his spare time on a vast array of interests, hobbies, and activities, which may to some extent be reflected in the variety of topics covered on this website.