Monday 6 April 2015

Generating HMC SHA1 hash in Java Using a Secret Key (Private Key)


Below is the method :

void generateHMCSHA1(){

int counter= 1;
           String privateKey = "0123456789ABCDEF0123456789ABCDEF";
           byte[] result = null;
           MessageDigest md;
try {
md = MessageDigest.getInstance("SHA-1");
byte[] keyBytes = md.digest(privateKey.getBytes("UTF-8"));

           SecretKey sk = new SecretKeySpec(keyBytes, "HmacSHA1");
           Mac mac = Mac.getInstance("HmacSHA1");
           mac.init(sk);
            result = mac.doFinal(String.valueOf(counter).getBytes("US_ASCII"));

           StringBuilder sb = new StringBuilder();
           for (byte b : result) {
               sb.append(String.format("%02X ", b));
           }
         
           System.out.println("      Key: " + privateKey + "\n");
       
           System.out.println("  Results: " +sb );
         
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}           

}


Output :

Key: 0123456789ABCDEF0123456789ABCDEF
 
Results: 38 92 62 29 80 04 C9 83 EE 87 97 B0 C0 FD 77 4C 69 F3 82 

No comments:

Post a Comment