1
現在、私たちのチームはHMACキーを作成していますが、iOSとAndroidの結果は異なります。 Javaの部分は正常に動作していますが、iOSの部分は動作していないようです。目的base16()。decode(String)
私たちは、鍵が最初にbase16バイト[]に変換されるように、JavaのHMAC_KEYに問題があることを確認しました。以下に相当するObjective-Cとは何でしょうか? IOSのまま現在
byte[] hmacKey = BaseEncoding.base16().decode(HMAC_KEY);
SecretKeySpec signingKey = new SecretKeySpec(hmacKey, HMAC_SHA256_ALGORITHM);
Mac mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);
mac.init(signingKey);
byte[] rawHmac = mac.doFinal(data.getBytes(C_UTF8));
return BaseEncoding.base64().encode(rawHmac);
我々は、次のしている:
NSData *saltData = [salt dataUsingEncoding:NSUTF8StringEncoding];
NSData *paramData = [signingData dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData* hash = [NSMutableData dataWithLength:CC_SHA256_DIGEST_LENGTH ];
CCHmac(kCCHmacAlgSHA256, saltData.bytes, saltData.length, paramData.bytes, paramData.length, hash.mutableBytes);
NSString *base64Hash = [hash base64Encoding];
問題は、我々はObjective-Cでこれを行うのですかBaseEncoding.base16().decode(HMAC_KEY)
一部をwithingされますか?