Warning: The result of calling any methods after calling {@link #hash} is undefined.
Warning: Using a specific character encoding when hashing a {@link CharSequence} with{@link #putString(CharSequence,Charset)} is generally only useful for cross-languagecompatibility (otherwise prefer {@link #putUnencodedChars}). However, the character encodings must be identical across languages. Also beware that {@link Charset} definitions may occasionallychange between Java releases.
Warning: Chunks of data that are put into the {@link Hasher} are not delimited.The resulting {@link HashCode} is dependent only on the bytes inserted, and the order in whichthey were inserted, not how those bytes were chunked into discrete put() operations. For example, the following three expressions all generate colliding hash codes:
{@code newHasher().putByte(b1).putByte(b2).putByte(b3).hash()}newHasher().putByte(b1).putBytes(new byte[] b2, b3 }).hash() newHasher().putBytes(new byte[] { b1, b2, b3 }).hash()}
If you wish to avoid this, you should either prepend or append the size of each chunk. Keep in mind that when dealing with char sequences, the encoded form of two concatenated char sequences is not equivalent to the concatenation of their encoded form. Therefore, {@link #putString(CharSequence,Charset)} should only be used consistently with completesequences and not broken into chunks. @author Kevin Bourrillion @since 11.0
|
|