[java]代码库
package com.javaonly.hmac.test;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Hex;
import javax.crypto.Mac;
public class ComputopTest {
public static void main(String args[]) throws NoSuchAlgorithmException,
KeyManagementException,
InvalidKeyException,
IllegalBlockSizeException, BadPaddingException {
String macKey = "The HMAC key";
String macData ="the data string"
System.out.println("MACDATA:"+macData);
Mac mac = Mac.getInstance("HmacSHA256");
//get the bytes of the hmac key and data string
byte[] secretByte = macKey.getBytes("UTF-8");
byte[] dataBytes = macData.getBytes("UTF-8");
SecretKey secret = new SecretKeySpec(secretByte, "HMACSHA256");
mac.init(secret);
byte[] doFinal = mac.doFinal(dataBytes);
byte[] hexB = new Hex().encode(doFinal);
String checksum = new String(hexB);
}
}
//该片段来自于http://yuncode.net