Press space to enter input, press h to hash. Demonstration of a hash algorithm that avoids directly using bitwise operations NOT, AND, OR, and XOR. This hash algorithm is a sequel to another hash I made on my other account, which was a bit too simplistic. Here I have allowed for the algorithm to generate a select sized hash, and its security is very dependent on the size for some inputs. ALGORITHM: -create a certain amount of hash blocks, all starting as 32-bits of just 0s -convert chars of input to 8-bit ASCII -concatenate into one message -append a '1' -append as many 0s to make the amount of bits in this message become a multiple of 512 - 64 (==448 (mod 512) ) -append the original message length before appending extra bits as a 64-bit binary number -break message into chunks of 512 bits :for each chunk: --break into 16 32-bit words --extend it to more words (usually around 830) -shuffle the words using a PRNG -combine consecutive words together and use a function on them to turn it into one 32-bit word. Add this amount to a certain hash block modulus 2^32 -combine the remaining 1, 2, 3, or 4 words with a certain function, and add it to the hash block modulus 2^32 :: -convert hash blocks to hex and concatenate them into the hash