What is Message Digest? how to use it into java?

The MD5 hashing algorithm is a one way cryptographic function that accepts a message of any length as input and returns as output a fixed length digest value to be used for authenticating the original message.

  • MD is a value that’s produced by applying a hash function to a message.
  • Same hash function, for each distinct message in the universe of message, their exists a unique message digest.
  • They are designed to protect the integrity of a piece of data to detect changes and alteration to any part of message.

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, they are:
1. MD5
2. SHA-1
3. SHA-256

This Algorithms are initialize 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 converts into hex format to get the MessageDigest

Examples:

Input : hello world

Output : 5eb63bbbe01eeed093cb22bb8f5acdc3

 

Input : GeeksForGeeks

Output : e39b9c178b2c9be4e99b141d956c6ff6

 

import java.math.BigInteger;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

 

// Java program to calculate MD5 hash value

public class MD5 {

public static String getMd5(String input)

{

try {

 

// Static getInstance method is called with hashing MD5

MessageDigest md = MessageDigest.getInstance("MD5");

 

// digest() method is called to calculate message digest

//  of an input digest() return 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);

while (hashtext.length() < 32) {

hashtext = "0" + 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

{

String s = "TheBeginnersPoint";

System.out.println("Your HashCode Generated by MD5 is: " + getMd5(s));

}

}

Output:
Your HashCode Generated by MD5 is: e39b9c178b2c9be4e99b141d956c6ff6

 

 

Leave a Reply