+ (NSString *)imageMD5:(UIImage *)image {
if (!image) {
return nil;
}
unsigned char result[CC_MD5_DIGEST_LENGTH];
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(image)];
CC_MD5([imageData bytes], [imageData length], result);
NSString *imageHash = [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]];
return imageHash;
}
注意:网上挺多把CC_MD5_DIGEST_LENGTH直接写成16的,这种做法是错误的,直接用16会导致图片每次取到的MD5值都会改变。