MD5

MD5

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加密和解密

posted @ 2017-05-16 14:05  啊·带鱼  阅读(63)  评论(0)    收藏  举报