歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android HMAC_SHA1 算法簡單實現

想簽名以下信息:
PUT /quotes/nelson HTTP/1.0
Content-Md5: c8fdb181845a4ca6b8fec737b3581d76
Content-Type: text/html
Date: Thu, 17 Nov 2005 18:49:58 GMT
X-OSS-Meta-Author: [email protected]
X-OSS-Magic: abracadabra
假如AccessID是: "44CF9590006BF252F707"
AccessKey 是 "OtxrzxIsfpFjA7SwPzILwy8Bw21TLhquhboDYROV",可用以下
方法簽名

簽名計算結果應該為”63mwfl zYIOG6k95yxbgMruQ6QI=”

  1. private String hmac_sha1(String key, String datas)  
  2.     {  
  3.         String reString = "";  
  4.   
  5.         try  
  6.         {  
  7.             byte[] data = key.getBytes("UTF-8");    
  8.             //根據給定的字節數組構造一個密鑰,第二參數指定一個密鑰算法的名稱     
  9.             SecretKey secretKey = new SecretKeySpec(data, "HmacSHA1");     
  10.             //生成一個指定 Mac 算法 的 Mac 對象     
  11.             Mac mac = Mac.getInstance("HmacSHA1");     
  12.             //用給定密鑰初始化 Mac 對象     
  13.             mac.init(secretKey);      
  14.                         
  15.             byte[] text = datas.getBytes("UTF-8");      
  16.             //完成 Mac 操作      
  17.             byte[] text1 = mac.doFinal(text);     
  18.                      
  19.             reString = Base64.encodeToString(text1, Base64.DEFAULT);  
  20.   
  21.         } catch (Exception e)  
  22.         {  
  23.             // TODO: handle exception   
  24.         }  
  25.           
  26.         return reString;  
  27.     }  
Copyright © Linux教程網 All Rights Reserved