hMac加密

package com.zit;

import java.security.NoSuchAlgorithmException;

import javax.crypto.KeyGenerator;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;

import org.apache.commons.codec.binary.Hex;

import com.sun.crypto.provider.HmacMD5;

public class HmacTest {
	private static String src = "hello hmac";

	public static void main(String[] args) {
		jdkHmacMD5();
	}

	public static void jdkHmacMD5() {
		try {
			KeyGenerator keyGenerator = KeyGenerator.getInstance("HmacMD5");// 初始化KeyGenerator
			SecretKey secretKey = keyGenerator.generateKey();// 產生祕鑰
			byte[] key = secretKey.getEncoded();// 獲得祕鑰(默認生成)
			// byte[]key=Hex.decodeHex(new
			// char[]{'a','a','a','a','a','a','a','a','a','a'});//手動生成祕鑰(十位)
			SecretKey secretKey2 = new SecretKeySpec(key, "HmacMD5");// 還原祕鑰
			Mac mac = Mac.getInstance(secretKey2.getAlgorithm());// 實例化mac
			// 初始化mac
			mac.init(secretKey);
			byte[] hmacMD5Bytes = mac.doFinal(src.getBytes());
			System.out.println("jdk hmacMD5: " + Hex.encodeHexString(hmacMD5Bytes));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章