Package ghidra.util
Class HashUtilities
- java.lang.Object
 - 
- ghidra.util.HashUtilities
 
 
- 
public class HashUtilities extends java.lang.Object 
- 
- 
Field Summary
Fields Modifier and Type Field Description static java.lang.StringMD5_ALGORITHMstatic intMD5_SALTED_HASH_LENGTHstatic intMD5_UNSALTED_HASH_LENGTHstatic intSALT_LENGTHstatic java.lang.StringSHA256_ALGORITHMstatic intSHA256_SALTED_HASH_LENGTHstatic intSHA256_UNSALTED_HASH_LENGTH 
- 
Constructor Summary
Constructors Constructor Description HashUtilities() 
- 
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.StringgetHash(java.lang.String algorithm, byte[] values)Generate combined message digest hash for the bytes in the specified array.static char[]getHash(java.lang.String algorithm, char[] msg)Generate hash in a hex character representationstatic java.lang.StringgetHash(java.lang.String algorithm, java.io.File file)Generate message digest hash for specified file contents.static java.lang.StringgetHash(java.lang.String algorithm, java.io.InputStream in)Generate message digest hash for specified input stream.static java.lang.StringgetHash(java.lang.String algorithm, java.util.List<java.lang.String> values)Generate combined message digest hash for all values in the specified values list.static char[]getSaltedHash(java.lang.String algorithm, char[] msg)Generate salted hash for specified message using random salt.static char[]getSaltedHash(java.lang.String algorithm, char[] salt, char[] msg)Generate salted hash for specified message.static char[]hexDump(byte[] data)Convert binary data to a sequence of hex characters. 
 - 
 
- 
- 
Field Detail
- 
MD5_ALGORITHM
public static java.lang.String MD5_ALGORITHM
 
- 
SHA256_ALGORITHM
public static java.lang.String SHA256_ALGORITHM
 
- 
SALT_LENGTH
public static final int SALT_LENGTH
- See Also:
 - Constant Field Values
 
 
- 
MD5_UNSALTED_HASH_LENGTH
public static final int MD5_UNSALTED_HASH_LENGTH
- See Also:
 - Constant Field Values
 
 
- 
MD5_SALTED_HASH_LENGTH
public static final int MD5_SALTED_HASH_LENGTH
- See Also:
 - Constant Field Values
 
 
- 
SHA256_UNSALTED_HASH_LENGTH
public static final int SHA256_UNSALTED_HASH_LENGTH
- See Also:
 - Constant Field Values
 
 
- 
SHA256_SALTED_HASH_LENGTH
public static final int SHA256_SALTED_HASH_LENGTH
- See Also:
 - Constant Field Values
 
 
 - 
 
- 
Method Detail
- 
getHash
public static char[] getHash(java.lang.String algorithm, char[] msg)Generate hash in a hex character representation- Parameters:
 algorithm- message digest algorithmmsg- message text- Returns:
 - hex hash value in text format
 - Throws:
 java.lang.IllegalArgumentException- if specified algorithm is not supported- See Also:
 for supported algorithms
 
- 
getSaltedHash
public static char[] getSaltedHash(java.lang.String algorithm, char[] salt, char[] msg)Generate salted hash for specified message. Supplied salt is returned as prefix to returned hash.- Parameters:
 algorithm- message digest algorithmsalt- digest salt (use empty string for no salt)msg- message text- Returns:
 - salted hash using specified salt which is returned as a prefix to the hash
 - Throws:
 java.lang.IllegalArgumentException- if specified algorithm is not supported- See Also:
 for supported hash algorithms
 
- 
getSaltedHash
public static char[] getSaltedHash(java.lang.String algorithm, char[] msg)Generate salted hash for specified message using random salt. First 4-characters of returned hash correspond to the salt data.- Parameters:
 algorithm- message digest algorithmmsg- message text- Returns:
 - salted hash using randomly generated salt which is returned as a prefix to the hash
 - Throws:
 java.lang.IllegalArgumentException- if specified algorithm is not supported- See Also:
 for supported hash algorithms
 
- 
getHash
public static java.lang.String getHash(java.lang.String algorithm, java.io.InputStream in) throws java.io.IOExceptionGenerate message digest hash for specified input stream. Stream will be read until EOF is reached.- Parameters:
 algorithm- message digest algorithmin- input stream- Returns:
 - message digest hash
 - Throws:
 java.io.IOException- if reading input stream produces an errorjava.lang.IllegalArgumentException- if specified algorithm is not supported- See Also:
 for supported hash algorithms
 
- 
getHash
public static java.lang.String getHash(java.lang.String algorithm, java.io.File file) throws java.io.IOExceptionGenerate message digest hash for specified file contents.- Parameters:
 algorithm- message digest algorithmfile- file to be read- Returns:
 - message digest hash
 - Throws:
 java.io.IOException- if opening or reading file produces an errorjava.lang.IllegalArgumentException- if specified algorithm is not supported- See Also:
 for supported hash algorithms
 
- 
getHash
public static java.lang.String getHash(java.lang.String algorithm, java.util.List<java.lang.String> values)Generate combined message digest hash for all values in the specified values list.- Parameters:
 algorithm- message digest algorithmvalues- list of text strings- Returns:
 - message digest hash
 - Throws:
 java.lang.IllegalArgumentException- if specified algorithm is not supported- See Also:
 for supported hash algorithms
 
- 
getHash
public static java.lang.String getHash(java.lang.String algorithm, byte[] values)Generate combined message digest hash for the bytes in the specified array.- Parameters:
 algorithm- message digest algorithmvalues- array of bytes to hash- Returns:
 - message digest hash
 - Throws:
 java.lang.IllegalArgumentException- if specified algorithm is not supported- See Also:
 for supported hash algorithms
 
- 
hexDump
public static char[] hexDump(byte[] data)
Convert binary data to a sequence of hex characters.- Parameters:
 data- binary data- Returns:
 - hex character representation of data
 
 
 - 
 
 -