Objective c 模拟器和设备(ipad)中的MD5问题

Objective c 模拟器和设备(ipad)中的MD5问题,objective-c,cocoa-touch,ipad,md5,simulator,Objective C,Cocoa Touch,Ipad,Md5,Simulator,我使用MD5算法为同一个图像创建唯一的字符串/名称。所以我用模拟器vs ipad进行了测试 我使用safari在模拟器中下载了一个图像,并为此创建了MD5字符串。它在模拟器中运行良好。在模拟器中,它总是为相同的图像创建相同的字符串 然后我通过safari从同一个站点/url将同一张图片下载到ipad上。并为此创建了一个MD5。有一个问题。这两个MD5是不同的。有人能告诉我确切的问题吗 模拟器和ipad在下载时是否以不同的大小保存相同的图像 我使用了代码: MyExtensions.h MyEx

我使用MD5算法为同一个图像创建唯一的字符串/名称。所以我用模拟器vs ipad进行了测试

我使用safari在模拟器中下载了一个图像,并为此创建了MD5字符串。它在模拟器中运行良好。在模拟器中,它总是为相同的图像创建相同的字符串

然后我通过safari从同一个站点/url将同一张图片下载到ipad上。并为此创建了一个MD5。有一个问题。这两个MD5是不同的。有人能告诉我确切的问题吗

模拟器和ipad在下载时是否以不同的大小保存相同的图像

我使用了代码:

MyExtensions.h


MyExtensions.m

#import "MyExtensions.h"
#import <CommonCrypto/CommonDigest.h> // Need to import for CC_MD5 access

@implementation NSData (MyExtensions)
- (NSString*)md5
{
    unsigned char result[16];
    CC_MD5( self.bytes, self.length, result ); // This is the md5 call
    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]
        ];  
}
@end


-(NSString *) md5Image:(UIImage *)img {
    return [UIImagePNGRepresentation(img) md5];
}
#导入“MyExtensions.h”
#导入//需要导入以进行CC_MD5访问
@实现NSData(MyExtensions)
-(NSString*)md5
{
无符号字符结果[16];
CC_MD5(self.bytes、self.length、result);//这是MD5调用
返回[NSString stringWithFormat:
@%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x“,
结果[0],结果[1],结果[2],结果[3],
结果[4],结果[5],结果[6],结果[7],
结果[8],结果[9],结果[10],结果[11],
结果[12],结果[13],结果[14],结果[15]
];  
}
@结束
-(NSString*)md5Image:(UIImage*)img{
返回[UIImagePNGRepresentation(img)md5];
}
检查以获取可能的解释

如您所见,CC_MD5实现可以包含一些数据类型,这些数据类型在32位或64位操作系统上占用不同的字节数。这可以解释您在模拟器(Mac OSX)或设备(iOS)上看到的散列差异。

检查以获得可能的解释


如您所见,CC_MD5实现可以包含一些数据类型,这些数据类型在32位或64位操作系统上占用不同的字节数。这可以解释你在模拟器(Mac OSX)或设备(iOS)上看到的哈希差异。

你确定图像一开始是相同的吗?你确定图像一开始是相同的吗?
#import "MyExtensions.h"
#import <CommonCrypto/CommonDigest.h> // Need to import for CC_MD5 access

@implementation NSData (MyExtensions)
- (NSString*)md5
{
    unsigned char result[16];
    CC_MD5( self.bytes, self.length, result ); // This is the md5 call
    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]
        ];  
}
@end


-(NSString *) md5Image:(UIImage *)img {
    return [UIImagePNGRepresentation(img) md5];
}