public abstract class HashFunction extends java.lang.Object
A cryptographic hash function computes a hash value from a message, for which it is hard to guess another message that generates the same hash.
These hash functions are intended for short messages, typically passwords or random tokens, and thus not suitable for computing the hash value of a large document.
When used for passwords, to avoid dictionary attacks, the hash functions accept also a random salt which is hashed together with the password. Not all hash functions are adequate for passwords hashes.
|Constructor and Description|
|Modifier and Type||Method and Description|
Computes the hash of a message + salt.
Returns the name for this hash function.
Verifies a message with the salted hash.
public abstract java.lang.String getName()
This should return a (short) name that uniquely identifies this hash function.
public abstract java.lang.String compute(java.lang.String msg, java.lang.String salt)
The message is usually an ASCII or UTF-8 string.
salt and the computed hash are encoded in printable
characters. This is usually ASCII-encoded or could be Base64-encoded.
public boolean verify(java.lang.String msg, java.lang.String salt, java.lang.String hash)
The base implementation will recompute the hash of the message with the
given salt, and compare it to the
Some methods however store the salt and additional settings in the
hash, and this information is thus needed to verify the