MD5
MD5:首先,md5不是加密。md5是摘要算法,主要是用来做认证,利用自身优势(不可逆、低碰撞率)解决公开网络中交换密钥、认证的问题,多用于签名识别。
iOS上的MD5使用:
MD5的实现 :首先需要包含头文件:
#import <CommonCrypto/CommonDigest.h>
可以自定义NSSrtring + Catgory 实现
+ (NSString *)md5:(NSString *)string;
/**
* MD5加密
*
* @param string 需要加密的字符串
*
* @return 返回加密后的结果
*/
+ (NSString *)md5:(NSString *)string{
// OC 字符串转换位C字符串
const char *cStr = [string UTF8String];
// 16位加密
unsigned char digest[CC_MD5_DIGEST_LENGTH];
// 1: 需要加密的C字符串
// 2: 加密的字符串的长度
// 3: 加密长度
CC_MD5(cStr, (CC_LONG)strlen(cStr), digest);
NSMutableString *result = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2]; // 32位
for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
[result appendFormat:@"%02X", digest[i]];
}
// 返回一个32位长度的加密后的字符串
return result;
}
测试过程:
NSString *strMD5 = @"ABCD";
NSString *string = [NSString stringForMD5:strMD5];
NSLog(@"%@",string);
输出结果:
2017-05-16 13:48:40.500 MD5Demo[21174:2897239]
CB08CA4A7BB5F9683C19133A84872CA7
关于MD5的加密和解密也可以在这个网站上测试:http://www.cmd5.com/
AES 和 Base64 请参考 博客 MD5(加密)/AES/Base64加密和解密
网友评论