As today a lot of hashes doesn't have only standard algorithms for generating anymore,
Hashes.org supports the ability to write own algorithms out of a basic set of hash
algorithms. Also possible are some modifications of hashes.
This means for every hash you want to generate or you get a result of, has a string
which defines how the hash is generated out of the plain. The idea of this is a little
oriented to the idea MDXfind uses when cracking hashes.
Hashes.org supports this following basic hash algorithms:
MD5, SHA1, SHALINKEDIN, MD4, MD2, MYSQL5, NTLM, LM, SHA256, SHA512, SHA224, SHA384, RIPEMD128,
RIPEMD160, RIPEMD256, RIPEMD320, WRL, TIGER128-3, TIGER128-4, TIGER160-3, TIGER160-4,
TIGER192-3, TIGER192-4, SNEFRU0, SNEFRU256, GOST, ADLER32, CRC32A, CRC32B, SALSA10,
SALSA20, HAVAL128-3, HAVAL128-4, HAVAL128-5, HAVAL160-3, HAVAL160-4, HAVAL160-5,
HAVAL192-3, HAVAL192-4, HAVAL192-5, HAVAL224-3, HAVAL224-4, HAVAL224-5, HAVAL256-3,
These hash algorithms can be combined to a algorithm string. These combinations are
- Iterations: You can iterate an algorithm multiple times, by give a multiplier
with 'x##' appended. For example SHA1x5 will do the SHA1 algorithm 5 times. The
maximum of iterations is 100'000.
- Reverse: You can reverse the hash with using REV. This means the hash will
be completely reversed. For example 098f6bcd4621d373cade4e832627b4f6 will become
- Rotate: You can shift a hash with a given number of shifts. One shift will
put the char on the right side and will prepend it to the string. For example
098f6bcd4621d373cade4e832627b4f6 with ROT2 will become
- Cut: You can cut off some parts of a hash. The first given number sets
the start point of the cut and the second number how many characters are taken.
For example 098f6bcd4621d373cade4e832627b4f6 with CUT0-16 becomes
- Uppercase: UC makes the whole string to uppercase. For example
098f6bcd4621d373cade4e832627b4f6 becomes 098F6BCD4621D373CADE4E832627B4F6.
- Multiplain: You can use the PLAIN of the hash multiple times in the hash
algorithm. For every algorithm or modification you can use brackets to set the range
where this modification is done. If you don't use brackets for every modification it
does it on all the remaining string to the right. If you don't enter any plain in the
hash string, it will be added at the end, so all algorithms and modifications are
done on it.
If you enter MD5(PLAIN)SHA1(PLAIN) you will get a hash which is the MD5 hash of the
plain with the SHA1 of the plain appended, this means you will get a hash with length
72. You can use as many brackets you want, like with MD5(MD5(PLAIN)SHA1(PLAIN)) which
will result in an MD5 of the given explained hash before. MD5MD5(PLAIN)SHA1(PLAIN)
will get the same result, it's just a bit more difficult to see quickly which
algorithmm is done on which part.