iPhone:快速哈希函数,用于存储Web图像(url)作为文件(哈希文件名)

znq*_*znq 5 iphone hash cocoa md5 objective-c

什么是可用于iPhone以散列网址(图像)的快速哈希函数?

我想将缓存的Web图像存储为带有散列作为文件名的文件,因为我认为原始Web URL可能包含可能导致文件系统出现问题的奇怪字符.

哈希函数不需要加密,但它肯定需要很快.

例:

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

输出: 3573ed9c4d3a5b093355b2d8a1468509

这是通过使用MD5()完成的,但由于我对该主题知之甚少,我不知道它是否过度( - >慢).

war*_*enm 12

出于安全考虑,MD5可能会被破坏,但它适用于您描述的情况.这是关于如何在iPhone上实现它的线程.看看Vroomtrap的帖子.对于后代,这是我自己的代码版本:

- (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] ];
}
Run Code Online (Sandbox Code Playgroud)

您需要导入CommonCrypto/CommonDigest.h标题.