Derzeit arbeitet unser Team an einem HMAC-Schlüssel, aber die Ergebnisse auf iOS und Android sind unterschiedlich. Der Java-Teil funktioniert gut, aber der iOS-Teil scheint nicht zu funktionieren.Objective Equivalent zu base16(). Decode (String)
Wir haben festgestellt, dass das Problem mit dem HMAC_KEY in Java ist, der Schlüssel wird zuerst in ein Base16 Byte [] konvertiert. Was wäre das Objective-C für das Folgende?
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);
curently in ios haben wir folgendes:
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];
das Problem der BaseEncoding.base16().decode(HMAC_KEY)
Teil withing wie tun wir dies in Objective-C?