Sometimes you just want to understand how your hashing algorithms work, so you implement them yourself.
It should go without saying that this was just for fun, and you should never, ever, ever roll your own cryptography primatives for any purpose other than education!
The sha1 function in
shamwow.rb implements the SHA1 hashing function in Ruby, outputting the 160-bit hash as a hexadecimal string.
The sha2 function in
shamwow.rb implements the SHA-256 hashing function in Ruby, outputting the 256-bit hash as a hexadecimal string.
shamwow_test.rb contains a few sanity tests for the bit-rotation functions and for the hashes themselves, testing against the output of the
Digest gem in the standard library.