SHA-1(安全哈希算法,也稱爲 SHS、安全哈希標準)是由美國政府發佈的一種加密哈希算法。算法
HmacSHA1:安全
HMAC,全稱爲「Hash Message Authentication Code」,中文名「散列消息鑑別碼」,主要是利用哈希算法,以一個密鑰和一個消息爲輸入,生成一個消息摘要做爲輸出。通常的,消息鑑別碼用於驗證傳輸於兩個共 同享有一個密鑰的單位之間的消息。HMAC 能夠與任何迭代散列函數捆綁使用。MD5 和 SHA-1 就是這種散列函數。HMAC 還可使用一個用於計算和確認消息鑑別值的密鑰函數
public static String getHmacSHA1(String message, String key) { String hmacSha1 = null; try { // url encode message = URLEncoder.encode(message, "UTF-8"); // hmac-sha1加密 Mac mac = Mac.getInstance("HmacSHA1"); SecretKeySpec spec = new SecretKeySpec(key.getBytes(), "HmacSHA1"); mac.init(spec); byte[] byteHMAC = mac.doFinal(message.getBytes()); // base64 encode hmacSha1 = new BASE64Encoder().encode(byteHMAC); } catch (NoSuchAlgorithmException e) { DevLog.error("NoSuchAlgorithmException: ",e); PA18LogUtil.error(log, "NoSuchAlgorithmException: ",e); } catch (InvalidKeyException e) { DevLog.info("InvalidKeyException: "+e); PA18LogUtil.error(log, "InvalidKeyException: ",e); } catch (UnsupportedEncodingException e) { DevLog.info("UnsupportedEncodingException: "+e); PA18LogUtil.error(log, "UnsupportedEncodingException: ",e); } return hmacSha1; }