我用过
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(inImage)];
CC_MD5(imageData, [imageData length], result);
用于生成我的图片的MD5代码并将它们添加到NSDictionary以比较来自 photoLibrary 的图像。但是当我添加一些代码或重新启动我的设备时,我发现哈希码完全改变了。怎样才能解决这个问题?
你应该使用
NSData *imageData = [NSData dataWithContentsOfFile:file];
CC_MD5(imageData, [imageData length], result);
那一定可以正常工作。
还可以考虑使用 sha1 作为基础算法。
PNG 文件格式允许在二进制数据中包含时间戳。每次调用都会有所不同UIImagePNGRepresentation
。恐怕你不能用这种方式用MD5来比较两张图像的数据。尝试从文件中提取原始图像数据并生成原始数据的 MD5。