MD5 算法

作者: 我爱吃豆芽 | 来源:发表于2016-06-24 14:25 被阅读363次

    新建继承于NSObject的类

    • 添加头文件
    #import <CommonCrypto/CommonCrypto.h>
    
    • m文件中
    + (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;
    }
    
    
    • h
    @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

    相关文章

      网友评论

      本文标题:MD5 算法

      本文链接:https://www.haomeiwen.com/subject/gppodttx.html