1 /**
2 * 使用 HMAC-SHA1 签名方法对对encryptText进行签名
3 *
4 * @param encryptText 被签名的字符串
5 * @param encryptKey 密钥
6 * @return 返回签名后的Base64串
7 * @throws Exception
8 */
9 public static String HmacSHA1Encrypt(String encryptText, String encryptKey) throws Exception {
10 byte[] data = encryptKey.getBytes("UTF-8");
11 //根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称
12 SecretKey secretKey = new SecretKeySpec(data, "HmacSHA1");
13 //生成一个指定 Mac 算法 的 Mac 对象
14 Mac mac = Mac.getInstance("HmacSHA1");
15 //用给定密钥初始化 Mac 对象
16 mac.init(secretKey);
17
18 byte[] text = encryptText.getBytes("UTF-8");
19 /**
20 * BASE64Encoder encoder = new BASE64Encoder();
21 * String encode = encoder.encode(str.getBytes("UTF-8"));//编码
22 */
23 BASE64Encoder encoder = new BASE64Encoder();
24 byte[] signBytes = mac.doFinal(text);
25 String encode = encoder.encode(signBytes);//编码
26 return encode;
27 }