diff options
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/util')
| -rw-r--r-- | src/main/java/org/openslx/imagemaster/util/Hash.java | 71 |
1 files changed, 45 insertions, 26 deletions
diff --git a/src/main/java/org/openslx/imagemaster/util/Hash.java b/src/main/java/org/openslx/imagemaster/util/Hash.java index 8ac0e5f..24eb595 100644 --- a/src/main/java/org/openslx/imagemaster/util/Hash.java +++ b/src/main/java/org/openslx/imagemaster/util/Hash.java @@ -6,7 +6,9 @@ import java.security.NoSuchAlgorithmException; public class Hash { - // Cache of md5 digesters + /** + * Cache of md5 digesters + */ private static final ThreadLocal<MessageDigest> md5hash = new ThreadLocal<MessageDigest>() { @Override public MessageDigest initialValue() @@ -20,7 +22,9 @@ public class Hash } } }; - // Cache of sha256 digesters + /** + * Cache of sha256 digesters + */ private static final ThreadLocal<MessageDigest> sha256hash = new ThreadLocal<MessageDigest>() { @Override public MessageDigest initialValue() @@ -34,32 +38,35 @@ public class Hash } } }; - // Cache of sha512 digesters - private static final ThreadLocal<MessageDigest> sha512hash = new ThreadLocal<MessageDigest>() { - @Override - public MessageDigest initialValue() - { - try { - return MessageDigest.getInstance( "SHA-512" ); - } catch ( NoSuchAlgorithmException e ) { - e.printStackTrace(); - System.exit(1); - return null; - } - } - }; - // For converting to hex string + /** + * For converting to hex string + */ private static final char[] HEX_CHARS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; - // Constant + /** + * Constant for the utf-8 charset, saves repeated lookups + */ private static final Charset UTF8 = Charset.forName( "UTF-8" ); // MD5 + /** + * Compute md5 hash of given binary data. + * + * @param bytes the binary data in a byte array + * @return hex representation of the 128bit md5 hash + */ public static String md5( final byte[] bytes ) { return toHexString( md5hash.get().digest( bytes ) ); } + /** + * Compute md5 hash of the given string. + * The string will be converted to utf-8 before computation. + * + * @param text the text to hash + * @return hex representation of the 128bit md5 hash + */ public static String md5( final String text ) { return md5( text.getBytes( UTF8 )); @@ -67,25 +74,37 @@ public class Hash // SHA-256 + /** + * Compute sha256 hash of given binary data. + * + * @param bytes the binary data in a byte array + * @return hex representation of the 256bit sha256 hash + */ public static String sha256( final byte[] bytes ) { return toHexString( sha256hash.get().digest( bytes ) ); } - + + /** + * Compute sha256 hash of the given string. + * The string will be converted to utf-8 before computation. + * + * @param text the text to hash + * @return hex representation of the 256bit sha256 hash + */ public static String sha256( final String text ) { return sha256( text.getBytes( UTF8 )); } - // SHA-512 - - public static MessageDigest getSha512Digest() - { - return sha512hash.get(); - } - // Helper + /** + * Convert given binary data to hex. + * + * @param bytes binary data in a byte array + * @return upper case hex representation of bytes + */ private static String toHexString( final byte[] bytes ) { final char[] hexChars = new char[bytes.length * 2]; |
