Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there any function for creating Hmac256 string in android?

Tags:

Is there any function for creating Hmac256 string in android ? I am using php as my back end for my android application, in php we can create hmac256 string using the php function hash_hmac () [ ref ] is there any function like this in Android

Please help me.

like image 413
Bikesh M Avatar asked Mar 15 '16 07:03

Bikesh M


1 Answers

Calculate the message digest with the hashing algorithm HMAC-SHA256 in the Android platform:

private void generateHashWithHmac256(String message, String key) {     try {         final String hashingAlgorithm = "HmacSHA256"; //or "HmacSHA1", "HmacSHA512"          byte[] bytes = hmac(hashingAlgorithm, key.getBytes(), message.getBytes());          final String messageDigest = bytesToHex(bytes);          Log.i(TAG, "message digest: " + messageDigest);      } catch (Exception e) {         e.printStackTrace();     } }  public static byte[] hmac(String algorithm, byte[] key, byte[] message) throws NoSuchAlgorithmException, InvalidKeyException {     Mac mac = Mac.getInstance(algorithm);     mac.init(new SecretKeySpec(key, algorithm));     return mac.doFinal(message); }  public static String bytesToHex(byte[] bytes) {     final char[] hexArray = "0123456789abcdef".toCharArray();     char[] hexChars = new char[bytes.length * 2];     for (int j = 0, v; j < bytes.length; j++) {         v = bytes[j] & 0xFF;         hexChars[j * 2] = hexArray[v >>> 4];         hexChars[j * 2 + 1] = hexArray[v & 0x0F];     }     return new String(hexChars); } 

This approach does not require any external dependency.

like image 123
Ryan Amaral Avatar answered Oct 14 '22 00:10

Ryan Amaral