MD5加密

作者: dididududididu | 来源:发表于2016-04-18 19:13 被阅读745次

    百度百科 MD5加密

    MD5使用场景 1.登录注册 2.签名sign
    MD5加密是不可逆的

    • 首先需要导入头文件
      #import <Foundation/Foundation.h>
    • Data类型数据的加密算法
    //1.需要MD5变量并且初始化
        CC_MD5_CTX md5;
        CC_MD5_Init(&md5);
        //2.开始加密
        //第一个参数:对MD5变量取地址(要为该变量指向的内存空间存储计算好的数据)
        //第二个参数:需要计算的源数据
        //第三个参数:数据的长度 需要转化为CC_LONG类型(32位整形)
        CC_MD5_Update(&md5, sourceData.bytes,(CC_LONG)sourceData.length);//sourceData为需要加密的data数据
        //3.声明一个无符号的字符数组用来盛放转换好的数据
        unsigned char result[CC_MD5_DIGEST_LENGTH];
        //4.将数据放入数组
        CC_MD5_Final(result, &md5);
        //5.将result中的字符拼接为OC语言中的字符串,以便使用
        NSMutableString *resultStr = [[NSMutableString alloc] init];
        for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
            [resultStr appendFormat:@"%02X",result[i]];
        }
    //resultStr为加密后得到的字符串
    
    • string类型的数据的加密算法
       //1.由于MD5加密都是通过C级别的函数来计算,所以要将加密的字符串转化的C语言字符串.
        const char * cStr = sourceString.UTF8String;
        //2.创建一个C语言字符数组用来接收加密之后的字符
        unsigned char result[CC_MD5_DIGEST_LENGTH];
        //3.MD5计算(加密)
        //第一个参数:需要加密的字符串
        //第二个参数:需要加密的字符串的长度  需要转化为CC_LONG类型(32位整形)
        //第三个参数:加密完成后的字符串存储的地方
        CC_MD5(cStr, (CC_LONG)strlen(cStr), result);
        //4.将加密完成的字符拼接起来使用(16进制)
        //声明一个可变类型 用来拼接转换好的字符
        NSMutableString *resultStr = [[NSMutableString alloc] init];
        //遍历result数组,取出所有的字符来拼接
        for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
            [resultStr appendFormat:@"%02x",result[i]];
        }
     //resultStr为加密后得到的字符串
    

    //如何让MD5更安全
    //1.加盐
    //2.先加密 在打乱顺序

    相关文章

      网友评论

          本文标题:MD5加密

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