美文网首页
MD5加密(自能加密,不能解密)

MD5加密(自能加密,不能解密)

作者: 傲骨天成科技 | 来源:发表于2016-03-22 20:08 被阅读251次

    1.必须导入系统的头文件<CommonCrypto/CommonCrypto.h>
    2.//MD5加密 为字符串加密
    -(void)md5
    {
    //1.需要加密的内容
    NSString str = @"我的iOS老师是最帅";
    //2.将数据转换为data类型 因为系统提供的md5加密的函数为C语言函数,所以需要将OC的字符串转换成C语言的字符串
    const char sourceData = [str UTF8String];
    //3.C语言的char类型的数组,长度为CC_MD5_DIGEST_LENGTH,因为md5加密是将任意长度的二进制值储存为固定长度的二进制值,所以这里我们长度给定
    unsigned char result[CC_MD5_DIGEST_LENGTH];
    /

    *
    * @param data#> 需要加密的源数据(const void *) description#>
    * @param len#> 元数据的长度 description#>
    * @param md#> 计算之后所存储的容器 description#>
    *
    */
    //4.将加密好的值存储到result中
    CC_MD5(sourceData, (CC_LONG)strlen(sourceData), result);
    //5.声明一个可变字符串,用来存储一会加密完成之后的值
    NSMutableString *md5_str = [NSMutableString string];
    //6.遍历result数组,将所有的元素进行16进制的编码
    for (int i=0; i<CC_MD5_DIGEST_LENGTH; i++)
    {
    [md5_str appendFormat:@"%02X",result[i]];
    }
    NSLog(@"加密完成%@",md5_str);
    }

    //为数组加密

    • (void)md5_array
      {
      NSArray *sourceArray = @[@"a",@"c",@"d"];
      //将数组转换为data类型
      NSData *sourceData = [NSJSONSerialization dataWithJSONObject:sourceArray options:NSJSONWritingPrettyPrinted error:nil ];
      NSString *sourceStr = [[NSString alloc]initWithData:sourceData encoding:NSUTF8StringEncoding];
      //1.将string对象转换为char *类型
      const char *strChar = sourceStr.UTF8String;
      //2.创建一个容器
      unsigned char result[CC_MD5_DIGEST_LENGTH];
      //3.进行MD5计算
      CC_MD5(strChar, (CC_LONG)strlen(strChar), result);
      //4.声明一个可变字符串,用来最终转换格式完成后的数据
      NSMutableString *resultString = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
      //5.遍历result数组,进行格式转换
      for (int i=0; i<CC_MD5_DIGEST_LENGTH; i++)
      {
      [resultString appendFormat:@"%02X",result[i]];
      }
      NSLog(@"数组加密%@",resultString);
      }

    相关文章

      网友评论

          本文标题: MD5加密(自能加密,不能解密)

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