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;
}