2011-07-04 73 views
1

我使用了MD5算法爲相同的圖像創建唯一的字符串/名稱..所以我用模擬器和ipad進行了測試。在模擬器和設備(ipad)中使用MD5的問題

我在模擬器中使用safari下載了一個圖像,並創建了MD5字符串for that.it在simulator.in模擬器中正常工作,它始終爲同一圖像創建相同的字符串。

然後我通過safari將相同的圖像從同一網站/網址下載到ipad。併爲此創建了一個MD5。有一個問題,兩個MD5是不同的。任何一個人都可以告訴我確切的問題。

是模擬器和ipad下載時保存不同大小的相同圖像。

我使用的代碼:

MyExtensions.h


@interface NSData (MyExtensions) 
    - (NSString*)md5; 
@end 

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]; 
} 
+0

你確定圖像是一樣的嗎? – kennytm

+0

是.......當然。 – Christina

回答

1

檢查answer to this post一個可能的解釋。

如您所見,CC_MD5實現可以包含某些數據類型,它在32位或64位操作系統上佔用不同數量的字節。這可以解釋你在模擬器(Mac OSX)或設備(iOS)上看到的差異。

相關問題