Skip to content

Instantly share code, notes, and snippets.

@janakagamini
Created June 24, 2016 02:51
Show Gist options
  • Save janakagamini/daaa34c765190e8e86ba038d81fbe7ac to your computer and use it in GitHub Desktop.
Save janakagamini/daaa34c765190e8e86ba038d81fbe7ac to your computer and use it in GitHub Desktop.
Generating SHA1 hash of a String
//Source: Somewhere on StackOVerFlow I cant remember.
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class ShaUtil{
public static String getHash( String toHash )
{
String hash = "";
try
{
MessageDigest digest = MessageDigest.getInstance( "SHA-1" );
byte[] bytes = toHash.getBytes("UTF-8");
digest.update(bytes, 0, bytes.length);
bytes = digest.digest();
// This is ~55x faster than looping and String.formating()
hash = bytesToHex( bytes );
}
catch( NoSuchAlgorithmException e )
{
e.printStackTrace();
}
catch( UnsupportedEncodingException e )
{
e.printStackTrace();
}
return hash.toLowerCase();
}
final private static char[] hexArray = "0123456789ABCDEF".toCharArray();
private static String bytesToHex( byte[] bytes )
{
char[] hexChars = new char[ bytes.length * 2 ];
for( int j = 0; j < bytes.length; j++ )
{
int v = bytes[ j ] & 0xFF;
hexChars[ j * 2 ] = hexArray[ v >>> 4 ];
hexChars[ j * 2 + 1 ] = hexArray[ v & 0x0F ];
}
return new String( hexChars );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment