因为今天强哥说要用到加密,所以我总结了一下iOS系统的加密方法
base64加密
NSString *str=@"together碳化"; NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding]; NSLog(@"%@",[data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]);
这是系统的base64加密,需要先将字符串转换成data类型,然后再进行base64编码,但是后面的option我不知道是神马意思,一共有四个值可以选,但是我不管选哪一项,输出结果都是一样的。
MD5加密
-(NSString *)md5:(NSString *)str{ const char *cStr=[str UTF8String]; unsigned char result[16]; CC_MD5(cStr, (int)strlen(cStr), 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]]; }
这个是抄网上的代码,CC_MD5是iOS自己的方法,其中%02x是后面的result的占位符,02表示不足不足两位前面补零,x表示16进制输出
其中MD5加密之后会产生128bit的字符串,然后转换成16进制的字符串,就是32个16进制的数字,计算机中最小的存储单位是字节,1字节是8位,对应一个char类型,可以得到16个char