首先:我們創(chuàng)建category在里面封裝MD5加密的代碼塊,這樣之后直接調(diào)用方法就可以進(jìn)行加密?chē)D!! 開(kāi)始吧~
NSString+MD5.h文件
#import <Foundation/Foundation.h>
@interface NSString (MD5)
– (NSString *)getMD5;
@end```
**NSString+MD5.m文件**
```code
// Copyright ? 2016年 xiaojie. All rights reserved.
#import “NSString+MD5.h”
//@引入MD5加密的框架
#import <CommonCrypto/CommonCrypto.h>
@implementation NSString (MD5)
– (NSString *)getMD5{
//1: 將字符串轉(zhuǎn)換成C語(yǔ)言的字符串(因?yàn)?MD5加密是基于C的)
const char *data = [self UTF8String];
//2: 初始化一個(gè)字符串?dāng)?shù)組,用來(lái)存放MD5加密后的數(shù)據(jù)
unsigned char resultArray[CC_MD5_DIGEST_LENGTH];
//3: 計(jì)算MD5的值
//參數(shù)一: 表示要加密的字符串
//參數(shù)二: 表示要加密字符串的長(zhǎng)度
//參數(shù)三: 表示接受結(jié)果的數(shù)組
CC_MD5(data, (CC_LONG) strlen(data), resultArray);
//4: 初始化一個(gè)保存結(jié)果的字符串
NSMutableString *resultString = [NSMutableString string];
//5: 從保存結(jié)果的數(shù)組中,取出值賦給字符串
for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
[resultString appendFormat:@”%02X”, resultArray[i]];
}
//6: 返回結(jié)果
return resultString;
}
@end```
**ViewController.m調(diào)用文件**
```code
#import “ViewController.h”
//引入封裝代碼的頭文件
#import “NSString+MD5.h”
@interface ViewController ()
@end
@implementation ViewController
– (void)viewDidLoad {
[super viewDidLoad];
//1: 初始化一個(gè)需要加密的字符串
NSString *string = @”面朝大海,春暖花開(kāi)”;
//2: 調(diào)用我們封裝好的加密算法,并保存返回值給一個(gè)新的字符串
NSString *resultString = [string getMD5];
//3: 輸出值
NSLog(@”resultString = %@”, resultString);
}
@end```