1. 程式人生 > >七牛圖片下載之Token生成

七牛圖片下載之Token生成

   
package org.Utils;

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

public class HmacSha1New {

	private static final String MAC_NAME = "HmacSHA1";
	private static final String ENCODING = "UTF-8";
	
	/**
	 * 
	 * 這個簽名方法找了半天 一個個對出來的、、、、程式猿辛苦啊、、、 使用 HMAC-SHA1 簽名方法對對encryptText進行簽名
	 * 
	 * @param encryptText
	 *            被簽名的字串
	 * @param encryptKey
	 *            金鑰
	 * @return
	 * @throws Exception
	 */
	public static byte[] HmacSHA1Encrypt(String encryptText, String encryptKey)
			throws Exception {
		byte[] data = encryptKey.getBytes(ENCODING);
		// 根據給定的位元組陣列構造一個金鑰,第二引數指定一個金鑰演算法的名稱
		SecretKey secretKey = new SecretKeySpec(data, MAC_NAME);
		// 生成一個指定 Mac 演算法 的 Mac 物件
		Mac mac = Mac.getInstance(MAC_NAME);
		// 用給定金鑰初始化 Mac 物件
		mac.init(secretKey);
		byte[] text = encryptText.getBytes(ENCODING);
		// 完成 Mac 操作
		return mac.doFinal(text);
	}
}