iOS开发iOS Coding算法

MD5 算法

2016-06-24  本文已影响363人  我爱吃豆芽

新建继承于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
上一篇 下一篇

猜你喜欢

热点阅读