Amazon Product Advertising API を使う場合、HMAC SHA256を使う必要がある。
Javaで認証コード生成(HMAC-SHA1) – 未来は僕以外の手の中 にほぼそのまま書いてあるのだけれども、サンプルコードを書いたのでのせてみる。
cryptography – How to Generate HMAC MD5 In Android? – Stack Overflowにも同じ質問が出ていた。
MacのgetInstance()に渡す文字列は、Java 暗号化アーキテクチャのMACのアルゴリズム名で確認できるようだ。
public String calcHmac(String src) throws Exception {
String key = “d6fc3a4a06ed55d24fecde188aaa9161”;
SecretKeySpec sk = new SecretKeySpec(key.getBytes(), “HmacMD5”);
Mac mac = Mac.getInstance(“HmacMD5”);
mac.init(sk);
byte[] result = mac.doFinal(src.getBytes());
String resultStr = byteToString(result);
Log.e(“TestHmacMD5”, resultStr);
return resultStr;
}
public String byteToString(byte[] b) {
StringBuffer s = new StringBuffer();
for (int i = 0; i < b.length; i++) {
int d = b[i];
d += d < 0 ? 256 : 0; // byte 128-255
if (d < 16) { //0-15 16
s.append("0");
}
s.append(Integer.toString(d, 16));
}
return s.toString();
}
[/c]