新建继承于NSObject的类
#import <CommonCrypto/CommonCrypto.h>
+ (NSString *)stringMD5Desciprtion:(NSString *)string {
// // 准备字符串
// NSString *originalString = @"今晚408";
// // 1、获取C字符串,(MD5基于C语言实现的,Foundation框架字符串需要转化)
const char *originalData = string.UTF8String;
// 2、创建字符串数组接受MD5值
// 一个字节为8位,两个字节为16位,那么两个字符可以表示一个16为进制的数,MD5结果为32位,实际上是由16位16进制数组成
unsigned char result[CC_MD5_DIGEST_LENGTH];
// 3、计算MD5值(结果存储在result数组中)
CC_MD5(originalData,(CC_LONG)strlen(originalData),result);
// 4、获取数组中的值
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、创建MD5变量
CC_MD5_CTX md5;
//3、初始化
CC_MD5_Init(&md5);
//4、准备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;
}
@interface MD5Description : NSObject
+ (NSString *)stringMD5Desciprtion:(NSString *)string;
+ (NSString *)dataMD5Desciprtion:(NSData *)data;
NSLog(@"string加密:%@",[MD5Description stringMD5Desciprtion:@"123"]);
NSString *JSONpath = [[NSBundle mainBundle]pathForResource:@"JSON.txt" ofType:nil];
NSData *data =[NSData dataWithContentsOfFile:JSONpath];
NSLog(@"Data加密家:%@",[MD5Description dataMD5Desciprtion:data]);
屏幕快照 2016-06-24 下午2.25.02.png