【发布时间】:2011-09-28 08:38:51
【问题描述】:
我使用 MD5 算法为同一图像创建唯一的字符串/名称。所以我用模拟器与 ipad 进行了测试。
我使用 safari 在模拟器中下载了一张图片并为此创建了 MD5 字符串。它在模拟器中运行良好。在模拟器中它总是为同一张图片创建相同的字符串。
然后我通过 safari 从同一站点/url 将相同的图像下载到 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];
}
【问题讨论】:
-
你确定图片一开始是一样的吗?
标签: objective-c cocoa-touch ipad md5 simulator