IPhone: fast hash function for storing web images (url) as files (hashed file names)

What is the fast hash function available for iPhone for hash pages (images)?

I would like to save the cached web image as a file with a hash as the file name, because I assume that the raw network URL may contain strange characters that can cause problems on the file system.

The hash function does not need cryptography, but it certainly should be fast.

Example:

Login: http://www.calumetphoto.com/files/iccprofiles/icc-test-image.jpg

Output: 3573ed9c4d3a5b093355b2d8a1468509

This was done using MD5 (), but since I know little about this topic, I do not know if it is excessive (-> slow).

+5
source share
2 answers

MD5 may be compromised for security purposes, but it works well for the situation described. Here is a thread on how to implement it on an iPhone. Check out the Vroomtrap post. For posterity, here is my own version of this code:

 - (NSString *)MD5Hash { const char *cStr = [self UTF8String]; unsigned char result[CC_MD5_DIGEST_LENGTH]; CC_MD5( cStr, strlen(cStr), result ); return [NSString stringWithFormat: @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7], result[8], result[9], result[10], result[11], result[12], result[13], result[14], result[15] ]; } 

You need to import the CommonCrypto/CommonDigest.h header.

+11
source

I think NSObject already has a hash function. And NSUrl or NSString can override it if you can try with these things. I think that in most cases this is fast enough, as we put an NSString in an NSDictionary :) An NSObject hash

0
source

Source: https://habr.com/ru/post/909163/


All Articles