Android HMAC_SHA 1アルゴリズムの簡単な実現


以下の情報に署名したい:PUT/quotes/nelson HTTP/1.0 Content-MD 5:c 8 fdb 181845 a 4 ca 6 b 8 fec 737 b 3581 d 76 Content-Type:text/html Date:Thu,17 Nov 2005 18:49:58 GMTX-OSS-Meta-Author:[email protected]:abracadabraアクセスIDが「44 CF 9590006 BF 252 F 707」アクセスキーが「OtxrzxIsfpFjA 7 SwPzILwy 8 Bw 21 TLhquhboDYROV」である場合、以下の方法で署名署名計算結果は「63 mwfl zYIOG 6 k 95 yxbgMruQ 6 QI=」
 
private String hmac_sha1(String key, String datas)
	{
		String reString = "";

		try
		{
			byte[] data = key.getBytes("UTF-8");  
			//               ,                 
			SecretKey secretKey = new SecretKeySpec(data, "HmacSHA1");   
			//       Mac      Mac     
			Mac mac = Mac.getInstance("HmacSHA1");   
			//         Mac     
			mac.init(secretKey);    
			          
			byte[] text = datas.getBytes("UTF-8");    
		    //   Mac      
			byte[] text1 = mac.doFinal(text);   
			       
			reString = Base64.encodeToString(text1, Base64.DEFAULT);

		} catch (Exception e)
		{
			// TODO: handle exception
		}
		
		return reString;
	}