MD5加密

2017-10-19  本文已影响18人  小屋新

-(NSString *)md5String
{

// 先转为UTF_8编码的字符串
const char *value = [self UTF8String];

// 设置一个接受字符数组
// md5加密后是128bit, 16 字节 * 8位/字节 = 128 位
unsigned char outputBuffer[CC_MD5_DIGEST_LENGTH];

// extern unsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md)官方封装好的加密方法把str字符串转换成了32位的16进制数列(这个过程不可逆转) 存储到了outputBuffer这个空间中
CC_MD5(value, (CC_LONG)strlen(value), outputBuffer);

/*
 x表示十六进制,%02X  意思是不足两位将用0补齐,如果多余两位则不影响
 NSLog("%02X", 0x888);  //888
 NSLog("%02X", 0x4); //04
 */
NSMutableString *outputString = [[NSMutableString alloc] initWithCapacity:CC_MD5_DIGEST_LENGTH * 2];

//将16字节的16进制转成32字节的16进制字符串
for(NSInteger count = 0; count < CC_MD5_DIGEST_LENGTH; count++){
    [outputString appendFormat:@"%02x",outputBuffer[count]];
}

return outputString;

}

上一篇下一篇

猜你喜欢

热点阅读