将两个UIImages与iOS中的CC_MD5进行比较,但重新启动设备后哈希代码将发生更改



我使用

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。

最新更新