이 질문을 반드시 중복으로 표시하는 것이 좋습니다. 그러나,이 질문을보고 어쨌든 당신이 할 수있는 나를 도우십시오.iOS에서 CCHmac을 사용할 수 없습니다.
iOS에서 소금으로 SHA512를 생성하고 싶습니다. 이 기사를 읽으려면 다음 스 니펫을 발견했으나 발견했습니다. CCHmac() 함수는 Mac 용입니다. 내가 CC_SHA512() 기능을 사용하는 경우
-(NSString *)hashString:(NSString *)data withSalt:(NSString *)salt
{
const char *cKey = [salt cStringUsingEncoding:NSUTF8StringEncoding];
const char *cData = [data cStringUsingEncoding:NSUTF8StringEncoding];
unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
NSString *hash;
NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_SHA256_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x", cHMAC[i]];
hash = output;
return hash;
}
, 그럼 어떻게 소금 문자열을 사용할 것인가? 나는 그 대답에 절망적이다.
귀하의 조언과 제안에 감사드립니다.
감사합니다 !!! SHA256 HMAC의
해시 및 HMAC는 동일한 것이 아닙니다. 문자열의 해시 된 해쉬를 원한다면 'CCKeyDerivationPBKDF'와 같은 것을 사용하고 싶습니다. 자세한 내용은 [this] (http://security.stackexchange.com/questions/29951/salted-hashes-vs-hmac)를 참조하십시오. – Rich
또한'CCHmac'은 OS X에서만 사용되는 것이 아닙니다 (Mac의 이름은 Mac (OS X) 만 해당됩니다), [이 질문] (http://stackoverflow.com/questions/26655999/create- 해시 - 인 - 키 - 앤 - 메시지)는 그것을 사용합니다. – Rich
문자열 인수'data'의 이름을 지정하지 마십시오. – zaph