Исходя из этого вопроса Я написал категорию на NSString
- hash NSString
экземплярах, используя SHA1. Однако с моей реализацией что-то не так. Самое смешное, что регистрация экземпляра NSData действительно дает ожидаемый хеш, но когда я хочу создать NSString из этого экземпляра NSData, я просто получаю ноль.
- (NSString *)sha1 {
NSData *dataFromString = [self dataUsingEncoding:NSUTF8StringEncoding];
unsigned char hashed[CC_SHA1_DIGEST_LENGTH];
if ( CC_SHA1([dataFromString bytes], [dataFromString length], hashed) ) {
NSData *dataFromDigest = [NSData dataWithBytes:hashed length:CC_SHA1_DIGEST_LENGTH];
NSString *result = [[NSString alloc] initWithBytes:[dataFromDigest bytes] length:[dataFromDigest length] encoding:NSUTF8StringEncoding];
return result;
} else {
return nil;
}
}
Спасибо за помощь!