Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec secret = new SecretKeySpec(PRIVATE_KEY.getBytes(),"HmacSHA1");
mac.init(secret);
result = Base64.encodeToString(mac.doFinal(data), Base64.DEFAULT);
は任意のObjective-Cのライブラリがあります私はそれを行うのを助けることができる?
* UPDATE *
ジャストアップデート - 私は、次のコードで実行を得たが、out
がnullを出てくる:
NSData *keyData = [PRIVATE_KEY dataUsingEncoding:NSUTF8StringEncoding];
NSData *clearTextData = [data dataUsingEncoding:NSUTF8StringEncoding];
uint8_t digest[CC_SHA1_DIGEST_LENGTH] = {0};
CCHmacContext hmacContext;
CCHmacInit(&hmacContext, kCCHmacAlgSHA1, keyData.bytes, keyData.length);
CCHmacUpdate(&hmacContext, clearTextData.bytes, clearTextData.length);
CCHmacFinal(&hmacContext, digest);
NSData *out = [NSData dataWithBytes:digest length:CC_SHA1_DIGEST_LENGTH];
NSLog(@"encrypted data: %@", [NSString stringWithUTF8String:[out bytes]]);
outデータを返すときにnullになり、secretKeyとsignStrが有効かどうかを確認しました。私は私が得たもので答えを更新します。 – xil3
# "CommonCrypto/CommonHMAC.h"をインポートしましたか?私はそれに言及するのを忘れていた。 –
また、CCHmacFinalの後にブレークポイントを置き、digestの値を見てください。 uint8_t [20]であり、値はnil以外の値にする必要があります。 –