2011-07-04 14 views
1

私は同じイメージのための一意の文字列/名前を作成するためにMD5アルゴリズムを使用しました。私はシミュレータ対ipadでテストしました。シミュレータとデバイス(ipad)のMD5での問題

私はsafariを使ってSimulatorで1つのイメージをダウンロードし、同じイメージの同じ文字列を常に作成するsimulator.inシミュレータのthat.itでうまく動作するMD5文字列を作成しました。

私は同じサイトからのipadに/ safariを通じたURLをダウンロードしました。 MD5を作成しました。問題があります.2つのMD5は異なっています。誰にでも正確な問題を教えてください。

はシミュレータで、同じサイズの画像をダウンロードして保存することができます。

私はコードを使用:

#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

MyExtensions.h


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

MyExtensions.mは、可能な説明のためにanswer to this postを確認してください。

ご覧のとおり、CC_MD5の実装には、32ビットまたは64ビットOS上のバイト数が異なるデータ型が含まれている場合があります。これは、シミュレータ(Mac OSX)またはデバイス(iOS)のハッシュで見られる違いを説明することができます。

関連する問題