新建繼承于NSObject的類
- 添加頭文件
#import <CommonCrypto/CommonCrypto.h>
- m文件中
+ (NSString *)stringMD5Desciprtion:(NSString *)string {
// // 準(zhǔn)備字符串
// NSString *originalString = @"今晚408";
// // 1、獲取C字符串,(MD5基于C語言實現(xiàn)的,F(xiàn)oundation框架字符串需要轉(zhuǎn)化)
const char *originalData = string.UTF8String;
// 2、創(chuàng)建字符串?dāng)?shù)組接受MD5值
// 一個字節(jié)為8位,兩個字節(jié)為16位,那么兩個字符可以表示一個16為進制的數(shù),MD5結(jié)果為32位,實際上是由16位16進制數(shù)組成
unsigned char result[CC_MD5_DIGEST_LENGTH];
// 3、計算MD5值(結(jié)果存儲在result數(shù)組中)
CC_MD5(originalData,(CC_LONG)strlen(originalData),result);
// 4、獲取數(shù)組中的值
NSMutableString *hash = [NSMutableString string];
for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
[hash appendFormat:@"%02X",result[i]];
}
NSLog(@"%@",hash);
return hash;
}
+ (NSString *)dataMD5Desciprtion:(NSData *)data {
//2、創(chuàng)建MD5變量
CC_MD5_CTX md5;
//3、初始化
CC_MD5_Init(&md5);
//4、準(zhǔn)備MD5加密
CC_MD5_Update(&md5,data.bytes,(CC_LONG)data.length);
//5、
unsigned char dataResult[CC_MD5_DIGEST_LENGTH];
CC_MD5_Final(dataResult,&md5);
NSMutableString *hashString = [NSMutableString string];
for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
[hashString appendFormat:@"%02X",dataResult[i]];
}
return hashString;
}
- h
@interface MD5Description : NSObject
+ (NSString *)stringMD5Desciprtion:(NSString *)string;
+ (NSString *)dataMD5Desciprtion:(NSData *)data;
- 調(diào)用
NSLog(@"string加密:%@",[MD5Description stringMD5Desciprtion:@"123"]);
NSString *JSONpath = [[NSBundle mainBundle]pathForResource:@"JSON.txt" ofType:nil];
NSData *data =[NSData dataWithContentsOfFile:JSONpath];
NSLog(@"Data加密家:%@",[MD5Description dataMD5Desciprtion:data]);
- 打印結(jié)果

屏幕快照 2016-06-24 下午2.25.02.png