Результат хеш-раундов iOS SHA512 отличается от переполнения стека

Цель состоит в том, чтобы запустить 5000 раундов CC_SHA512 в приложении iOS и получите тот же результат 5000 раундов open_ssl_digest($passkey, 'sha512') в php. Я нашел этот код на stackoverflow:

-(NSString*) sha512:(NSString*)input {
const char *cstr = [input cStringUsingEncoding:NSUTF8StringEncoding];
NSData *data = [NSData dataWithBytes:cstr length:input.length];

uint8_t digest[CC_SHA512_DIGEST_LENGTH];

CC_SHA512(data.bytes, data.length, digest);

NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA512_DIGEST_LENGTH * 2];

for(int i = 0; i < CC_SHA512_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x", digest[i]];

return output;

}

и выполнение всего кода 5000 раз дает те же результаты, что и openssl_digest, но я думал о том, чтобы сделать его более эффективным, вставив этот цикл после первого хэша и перед созданием NSMutableString:

 //do it 4999 more times
for (int i=0; i<4999; i++)
CC_SHA512(digest, CC_SHA512_DIGEST_LENGTH, digest)

Но это дает другой хэш.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]