MD5加密 - 我的专栏
@implementation NSString (Encryption)
(NSString *)md5String{
//先转为UTF_8编码的字符串
const char* str = [self UTF8String];
//设置一个接受字符数组
//md5加密后是128bit, 16 字节 * 8位/字节 = 128 位
unsigned char result[CC_MD5_DIGEST_LENGTH];
/*extern unsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md)官方封装好的加密方法把str字符串转换成了32位的16进制数列(这个过程不可逆转) 存储到了result这个空间中*/
CC_MD5(str, strlen(str), result);
NSMutableString ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH 2];
/*x表示十六进制,%02X 意思是不足两位将用0补齐,如果多余两位则不影响NSLog("%02X", 0x888); //888NSLog("%02X", 0x4); //04*/
//将16字节的16进制转成32字节的16进制字符串
for(int i = 0; i<CC_MD5_DIGEST_LENGTH; i++) {[ret appendFormat:@"%02x",result[i]];
}
return ret;
}