#import "NSString+XXMD5.h"
#import <CommonCrypto/CommonDigest.h>
@implementation NSString (XXMD5)
- (NSString *)xx_md5
{
if (!self ||self.length ==0) {
return nil;
}
const char *cStr = [selfUTF8String];
unsigned char result[16];
CC_MD5(cStr, (unsignedint)strlen(cStr), result);// This is the md5 call
return [NSStringstringWithFormat:
@"%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]
];
}
简化版
+ (NSString *)md5HexDigest:(NSString*)input
{
const char* str = [input UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(str, strlen(str), result);
NSMutableString *ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
for(int i = 0; i<CC_MD5_DIGEST_LENGTH; i++) {
[ret appendFormat:@"%02X",result];
}
return ret;
}