Here you can find the source of hmac_sha(String crypto, byte[] keyBytes, byte[] text)
Parameter | Description |
---|---|
crypto | : the crypto algorithm (HmacSHA1, HmacSHA256, HmacSHA512) |
keyBytes | : the bytes to use for the HMAC key |
text | : the message or text to be authenticated |
private static byte[] hmac_sha(String crypto, byte[] keyBytes, byte[] text)
//package com.java2s; /**//from ww w .java 2s . c om * Copyright (c) 2011 IETF Trust and the persons identified as authors of the * code. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, is permitted pursuant to, and subject to the license terms * contained in, the Simplified BSD License set forth in Section 4.c of the IETF * Trust's Legal Provisions Relating to IETF Documents * (http://trustee.ietf.org/license-info). */ import java.lang.reflect.UndeclaredThrowableException; import java.security.GeneralSecurityException; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; public class Main { /** * This method uses the JCE to provide the crypto algorithm. HMAC computes a * Hashed Message Authentication Code with the crypto hash algorithm as a * parameter. * * @param crypto : the crypto algorithm (HmacSHA1, HmacSHA256, HmacSHA512) * @param keyBytes : the bytes to use for the HMAC key * @param text : the message or text to be authenticated */ private static byte[] hmac_sha(String crypto, byte[] keyBytes, byte[] text) { try { Mac hmac; hmac = Mac.getInstance(crypto); SecretKeySpec macKey = new SecretKeySpec(keyBytes, "RAW"); hmac.init(macKey); return hmac.doFinal(text); } catch (GeneralSecurityException gse) { throw new UndeclaredThrowableException(gse); } } }