Skip to content
Related Articles

Related Articles

Improve Article

SHA-256 Hash in Java

  • Difficulty Level : Medium
  • Last Updated : 07 Aug, 2019

In Cryptography, SHA is cryptographic hash function which takes input as 20 Bytes and rendered the hash value in hexadecimal number, 40 digits long approx.

Message Digest Class:
To calculate cryptographic hashing value in Java, MessageDigest Class is used, under the package

MessagDigest Class provides following cryptographic hash function to find hash value of a text, they are:

  1. MD5
  2. SHA-1
  3. SHA-256

This Algorithms are initialized in static method called getInstance(). After selecting the algorithm it calculate the digest value and return the results in byte array.

BigInteger class is used, which converts the resultant byte array into its sign-magnitude representation. This representation is converted into hex format to get the MessageDigest


Input : hello world
Output : b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

Input : GeeksForGeeks
Output : 112e476505aab51b05aeb2246c02a11df03e1187e886f7c55d4e9935c290ade

import java.math.BigInteger; 
import java.nio.charset.StandardCharsets;
// Java program to calculate SHA hash value 
class GFG { 
    public static byte[] getSHA(String input) throws NoSuchAlgorithmException
        // Static getInstance method is called with hashing SHA 
        MessageDigest md = MessageDigest.getInstance("SHA-256"); 
        // digest() method called 
        // to calculate message digest of an input 
        // and return array of byte
        return md.digest(input.getBytes(StandardCharsets.UTF_8)); 
    public static String toHexString(byte[] hash)
        // Convert byte array into signum representation 
        BigInteger number = new BigInteger(1, hash); 
        // Convert message digest into hex value 
        StringBuilder hexString = new StringBuilder(number.toString(16)); 
        // Pad with leading zeros
        while (hexString.length() < 32
            hexString.insert(0, '0'); 
        return hexString.toString(); 
    // Driver code 
    public static void main(String args[])
            System.out.println("HashCode Generated by SHA-256 for:"); 
            String s1 = "GeeksForGeeks"
            System.out.println("\n" + s1 + " : " + toHexString(getSHA(s1))); 
            String s2 = "hello world"
            System.out.println("\n" + s2 + " : " + toHexString(getSHA(s2))); 
        // For specifying wrong message digest algorithms 
        catch (NoSuchAlgorithmException e) { 
            System.out.println("Exception thrown for incorrect algorithm: " + e); 
HashCode Generated by SHA-256 for:

GeeksForGeeks : 112e476505aab51b05aeb2246c02a11df03e1187e886f7c55d4e9935c290ade

hello world : b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9


  1. Cryptography
  2. Data Integrity

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :