MD5
MD5:首先,md5不是加密。md5是摘要算法追驴,主要是用來做認證械哟,利用自身優(yōu)勢(不可逆、低碰撞率)解決公開網(wǎng)絡(luò)中交換密鑰殿雪、認證的問題暇咆,多用于簽名識別。
iOS上的MD5使用:
MD5的實現(xiàn) :首先需要包含頭文件:
#import <CommonCrypto/CommonDigest.h>
可以自定義NSSrtring + Catgory 實現(xiàn)
+ (NSString *)md5:(NSString *)string;
/**
* MD5加密
*
* @param string 需要加密的字符串
*
* @return 返回加密后的結(jié)果
*/
+ (NSString *)md5:(NSString *)string{
// OC 字符串轉(zhuǎn)換位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);
輸出結(jié)果:
2017-05-16 13:48:40.500 MD5Demo[21174:2897239]
CB08CA4A7BB5F9683C19133A84872CA7
關(guān)于MD5的加密和解密也可以在這個網(wǎng)站上測試:http://www.cmd5.com/
AES 和 Base64 請參考 博客 MD5(加密)/AES/Base64加密和解密