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.先加密 在打乱顺序


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值