你可以通过扩展NSString来实现这一点,在你的.h中试试这个:
@interface NSString(MD5)
- (NSString *)generateMD5Hash
@end
Run Code Online (Sandbox Code Playgroud)
这在你的.m
- (NSString*)generateMD5Hash
{
const char *string = [self UTF8String];
unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH];
CC_MD5(string, strlen(string), md5Buffer);
NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x",md5Buffer[i]];
return output;
}
Run Code Online (Sandbox Code Playgroud)
你可以通过创建一个名为NSString + MD5的新类,并将上面的代码插入相应的文件(.h和.m)来实现这一点.
编辑:别忘了导入
<CommonCrypto/CommonDigest.h>
编辑2:
对于NSData;
@interface NSData(MD5)
- (NSString *)generateMD5Hash;
@end
Run Code Online (Sandbox Code Playgroud)
你妈:
- (NSString *)generateMD5Hash
{
unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH];
CC_MD5(self.bytes, (CC_LONG)self.length, md5Buffer);
NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x",md5Buffer[i]];
return output;
}
Run Code Online (Sandbox Code Playgroud)
请注意,返回的值是autorelease,可能需要由接收方保留.
希望这可以帮助.