HMAC-SHA1加密

 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;
     }
相關文章
相關標籤/搜索