您的位置:首页 > 移动开发 > IOS开发

iOS开发之MD5封装及应用

2015-11-19 15:59 976 查看
一、MD5的封装

#define CC_MD5_DIGEST_LENGTH    16

- (NSString *)toMD5
{
const char* input = [self UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(input, (CC_LONG)strlen(input), result);

NSMutableString *digest = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for (NSInteger i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
[digest appendFormat:@"%02x", result[i]];
}

return digest;
}


二、生成独一无二的图片名称

  1)根据URLString来生成

- (NSString*) genImageName:(NSString *)urlString
{
NSString *imageName = [urlString toMD5];
return [imageName stringByAppendingPathExtension:@"png"];
}


  2) 根据时间戳来生成(绝对独一无二)

+(NSString *)createCUID
{
NSString *prefix = [NSString stringWithFormat:@"%ld", (long)[[NSDate date] timeIntervalSince1970]];
NSString *  result;
CFUUIDRef   uuid;
CFStringRef uuidStr;
uuid = CFUUIDCreate(NULL);
uuidStr = CFUUIDCreateString(NULL, uuid);
result =[NSString stringWithFormat:@"%@-%@",prefix,uuidStr];
CFRelease(uuidStr);
CFRelease(uuid);
return [result toMD5];
}

//生成图片名,统一用png
static inline NSString* genImageName()
{
NSString *imageName = [NSString createCUID];
return [imageName stringByAppendingPathExtension:@"png"];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: