Created
June 24, 2016 02:51
-
-
Save janakagamini/daaa34c765190e8e86ba038d81fbe7ac to your computer and use it in GitHub Desktop.
Generating SHA1 hash of a String
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//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