1
현재 Google 팀에서 HMAC 키를 사용하고 있지만 iOS와 Android의 결과는 다릅니다. Java 부분은 정상적으로 작동하지만 iOS 부분이 작동하지 않는 것으로 보입니다.목표 base16(). decode (String)
우리는 HMAC_KEY가 자바에서 처음으로 key가 base16 byte []로 변환된다는 것을 확인했습니다. 다음과 같은 목표 -C가 될 수있는 것은 무엇입니까? IOS에서 curently
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];
문제는 우리가 목표 - C에서이 작업을 수행 할 방법 BaseEncoding.base16().decode(HMAC_KEY)
부분 withing에있다?