欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java 创建 HMAC 签名,java创建hmac签名,HMAC是 Hash M

来源: javaer 分享于  点击 47743 次 点评:144

Java 创建 HMAC 签名,java创建hmac签名,HMAC是 Hash M


HMAC是 Hash Message Authentication Code的简写,这种算法用来在程序之间交换数据时做校验。 通常任何hash函数像MD5,SHA1都可以用来创建HMAC签名,在这个代码中我们使用的hash算法是SHA256.

要创建HMAC,我们需要一个key和javax.crypto.Mac类。

ComputopTest.java

package cn.outofmemory.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);    }}
相关栏目:

用户点评