Получить контрольную сумму CRC для NSData в Objective-C

Как я могу подсчитать CRC (32 или 64) объекта NSData в Objective-C?

Заранее спасибо!


person Knodel    schedule 06.11.2010    source источник
comment
Дубликат: stackoverflow .com / questions / 1028742 /? Не совсем CRC, но подойдет ли MD5?   -  person Richard J. Ross III    schedule 06.11.2010
comment
Нет, проблема в том, что мне нужен CRC :(   -  person Knodel    schedule 06.11.2010


Ответы (2)


Используйте функцию crc32() из библиотеки zlib:

#import <zlib.h>

NSData *data;

// ...

unsigned long result = crc32(0, data.bytes, data.length);
NSLog(@"CRC32: %lu", result);

Не забудьте связать libz библиотеку с вашим проектом:

введите описание изображения здесь

person 5lava    schedule 26.01.2013

Из iOS11 используйте это:

unsigned long result = crc32_z(0, data.bytes, data.length);
person AlexeyVMP    schedule 08.12.2017