Вы наверняка подумали бы отметить этот вопрос как дубликат. Но, пожалуйста, взгляните на этот вопрос и помогите мне в любом случае вы можете.Я не могу использовать CCHmac в iOS
Я хочу генерировать SHA512 с солью в iOS. Я нашел следующий фрагмент, чтобы достичь этого, но я обнаружил, что CCHmac() функция предназначена для Mac.
-(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;
}
Если я использую CC_SHA512() функцию, то, как я буду использовать строку соли? Я отчаянно нуждаюсь в ответе.
Цените свои советы и предложения.
Спасибо !!!
Хеши и HMAC - это не одно и то же? Если вы хотите соленый хэш строки, вы хотите использовать что-то вроде CCKeyDerivationPBKDF. См. [This] (http://security.stackexchange.com/questions/29951/salted-hashes-vs-hmac) для получения дополнительной информации. – Rich
Также 'CCHmac' - это не только OS X (макрос в имени не имеет ничего общего с Mac (OS X)), [этот вопрос] (http://stackoverflow.com/questions/26655999/create- hash-in-swift-using-key-and-message) использует его. – Rich
Старайтесь не указывать строковый аргумент 'data'. – zaph