-1
hmac sha256 암호화를 사용하여 내 서버에 로그인하려고하는데, PHP 코드가 작동하지만 아이폰에서 작동하지 않아서 아이폰에서 hmac이 산출된다는 것을 추적했습니다. PHP 코드 같은 입력에게 주어진 PHP 코드에 서로 다른 출력은php to iphone code - CCHmac kCCHmacAlgSHA256
$privatekey = '6-y6f"\%BjSM;HBo\'sPr")5#t2nb-LG*;])f^Si[';
$identity_arrow_getSecret = $privatekey;
$date_c = "2011-04-18T23:56:28+0800";
$uri = '/backend/1/User/Header';
$stringToSign = "GET\n\n\n" . $date_c . "\n" . $uri;
$signature = hash_hmac("sha256", utf8_encode($stringToSign), $identity_arrow_getSecret);
echo "stringToSign is $stringToSign <HR>";
echo "signature is $signature <HR>";
목표 - C 코드 당신은 Base64로 클래스를 확인 할 수 있습니다
NSString* uri = @"/backend/1/User/Header";
NSString* date_c = @"2011-04-18T23:56:28+0800"; //[dateFormatter stringFromDate:[NSDate date]];
NSString* stringToSign = [NSString stringWithFormat:@"GET\n\n\n%@\n%@" , date_c , uri];
NSLog(@" stringToSign : %@ <>\r\n", stringToSign);
NSString* privatekey = @"6-y6f\"\%BjSM;HBo\'sPr\")5#t2nb-LG*;])f^Si[";
const char *cKey = [privatekey cStringUsingEncoding:NSASCIIStringEncoding];
const char *cData = [stringToSign cStringUsingEncoding:NSASCIIStringEncoding];
unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
NSString *hash = [HMAC base64EncodedString];
NSLog(@" hash : %@ \r\n", hash);
프로젝트를 계속하지 않았으므로 도움이 될지 모르겠으므로 올바른 것으로 표시하지 않으면 잘못된 방식으로 사용하지 마십시오. 아니 – Maysam