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算法和SHA-1算法

    目录一、MD5算法 1、MD5算法是什么? 2、MD5算法的优点 3、MD5算法的不足 4、MD5加密的应用场景 ...

  • MD5(MD5 消息摘要算法)

    MD5(MD5 消息摘要算法) MD5 简介 MD5 消息摘要算法(MD5 Message-Digest Algo...

  • md5加密算法

    md5算法简介 md5(message digent algorithm 5 信息摘要算法)算法是一种单向散列算...

  • iOS中DES与MD5加密方案

    MD5算法和DES算法是常见的两种加密算法。 MD5: MD5是一种不可逆的加密算法,按我的理解,所谓不可逆,就是...

  • 常见算法之MD5算法

    MD5算法(Message-Digest algorithm 5) 不同于BASE64算法,md5是一种摘要算法。...

  • hashlib,logging模块

    hashlib hashlib是提供摘要算法的模块,包括MD5,SHA等算法。md5加密算法是单方向的,不可逆。 ...

  • SHA

    SHA 算法简介 之前已经介绍过 MD5 算法的使用,从生成的 MD5 值我们可以看出,MD5 加密过后的长度是 ...

  • MD5

    python MD5 拓展: MD5加密算法原理及实现

  • Java 常用加密算法(一)---单向加密算法(MD5/SHA)

    Java 常用加密算法(一)---单向加密算法(MD5/SHA) MD5加密MD5以512位分组来处理输入的信息,...

  • 哈希加密算法种类

    MD5哈希加密算法 MD5即Message-Digest Algorithm 5(信息-摘要算法 5),用于确保信...

网友评论

本文标题:MD5 算法

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