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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With