Sunday, November 17, 2024
Google search engine
HomeLanguagesJavaSHA-224 Hash In Java

SHA-224 Hash In Java

The SHA-2 family of cryptographic hash functions consists of six hash functions. These are:

  1. SHA-224, with 224 bit hash values
  2. SHA-256, with 256 bit hash values
  3. SHA-384, with 384 bit hash values
  4. SHA-512, with 512 bit hash values
  5. SHA-512/224, with 512 bit hash values
  6. SHA-512/256, with 512 bit hash values
  7. Among these, SHA-256 and SHA-512 are the most commonly accepted and used hash functions computed with 32-bit and 64-bit words, respectively. SHA-224 and SHA-384 are truncated versions of SHA-256 and SHA-512 respectively, computed with different initial values.

    To calculate cryptographic hashing value in Java, MessageDigest Class is used, under the package java.security.

    MessagDigest Class provides following cryptographic hash function to find hash value of a text as follows:

  • MD2
  • MD5
  • SHA-1
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512

These algorithms are initialized in static method called getInstance(). After selecting the algorithm the message digest value is calculated and the results are returned as a byte array. BigInteger class is used, to convert the resultant byte array into its signum representation. This representation is then converted into a hexadecimal format to get the expected MessageDigest.

Examples:

Input : hello world
Output :
2f05477fc24bb4faefd86517156dafdecec45b8ad3cf2522a563582b

Input : GeeksForGeeks
Output :
c9e0629b317667db73eaa051cf05f4c5896f5c0c7c2cec4589919d02

Program: Below program shows the implementation of SHA-224 hash in Java.




// Java program to calculate SHA-224 hash value
  
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
  
public class GFG {
    public static String encryptThisString(String input)
    {
        try {
            // getInstance() method is called with algorithm SHA-224
            MessageDigest md = MessageDigest.getInstance("SHA-224");
  
            // digest() method is called
            // to calculate message digest of the input string
            // returned as array of byte
            byte[] messageDigest = md.digest(input.getBytes());
  
            // Convert byte array into signum representation
            BigInteger no = new BigInteger(1, messageDigest);
  
            // Convert message digest into hex value
            String hashtext = no.toString(16);
  
            // Add preceding 0s to make it 32 bit
            while (hashtext.length() < 32) {
                hashtext = "0" + hashtext;
            }
  
            // return the HashText
            return hashtext;
        }
  
        // For specifying wrong message digest algorithms
        catch (NoSuchAlgorithmException e) {
            throw new RuntimeException(e);
        }
    }
  
    // Driver code
    public static void main(String args[]) throws 
                                     NoSuchAlgorithmException
    {
        System.out.println("HashCode Generated by SHA-224 for: ");
  
        String s1 = "GeeksForGeeks";
        System.out.println("\n" + s1 + " : " + encryptThisString(s1));
  
        String s2 = "hello world";
        System.out.println("\n" + s2 + " : " + encryptThisString(s2));
    }
}


Output:

HashCode Generated by SHA-224 for: 

GeeksForGeeks : c9e0629b317667db73eaa051cf05
f4c5896f5c0c7c2cec4589919d02

hello world : 2f05477fc24bb4faefd86517156daf
decec45b8ad3cf2522a563582b

Application:

  • Cryptography
  • Data Integrity
RELATED ARTICLES

Most Popular

Recent Comments