#import <Foundation/Foundation.h>
@interface NSString (MD5)
- (NSString*)MD5_32BitLower;
- (NSString*)MD5_32BitUpper;
@end
#import "NSString+MD5.h"
#import <CommonCrypto/CommonDigest.h>
@implementation NSString (HJMD5)
- (NSString*)MD5_32BitLower
{
const char *cStr = [self UTF8String];
unsigned char result[16];
NSNumber *num = [NSNumber numberWithUnsignedLong:strlen(cStr)];
CC_MD5( cStr,[num intValue], result );
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]
] lowercaseString];
}
- (NSString*)MD5_32BitUpper
{
const char *cStr = [self UTF8String];
unsigned char result[16];
NSNumber *num = [NSNumber numberWithUnsignedLong:strlen(cStr)];
CC_MD5( cStr,[num intValue], result );
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]
] uppercaseString];
}
@end