summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/util')
-rw-r--r--src/main/java/org/openslx/imagemaster/util/Hash.java71
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];