zoukankan      html  css  js  c++  java
  • OC 加密

      //MD5加密的结果为128位的二进制数.

            //所以有128 / 8 = 16字节(8位一个字节).

            //每八位表示两个16进制数.

            //MD5 有32个16进制数.

       //语言层次的所有摘要算法步骤类似,只有加密结果的数组长度不一样.

    需要导入框架: #import <CommonCrypto/CommonCrypto.h>

    C语言实现加密过程:

      //明文

            char *str = "I LOVE iOS";

            //系统定义了一个相对应加密结果的长度(字节数).我们在使用摘要算法时,只要使用对应的宏就可以,不需要记忆.

            unsigned char result[16] ;//创建存放MD5结果的数

            //开始加密过程

            CC_MD5_CTX md5;

            //初始化

            CC_MD5_Init(&md5);

            //更新加密参数

            //第一个参数:MD5加密主题  第二个参数:需要机密的内容  第三个参数:要加密的长度

            CC_MD5_Update(&md5, str, (CC_LONG)strlen(str));

            //结束加密

            CC_MD5_Final(result, &md5);

      //打印机密结果

            for (int i = 0; i < 16; i++) {

                printf("%02x",result[i]);

            }

            printf(" ");

      //系统提供MD5加密实现原理

      void AG_MD5(const void *data,CC_LONG len,unsigned char *md);

      void AG_MD5(const void *data,CC_LONG len,unsigned char *md){

          CC_MD5_CTX md5;

          CC_MD5_Init(&md5);

          CC_MD5_Update(&md5, data, len);

          CC_MD5_Final(md, &md5);

      }

      实现OC字符串对象加密

            NSString *str1 = @"岁月微凉人好,回忆袭身日渐长"; //明文

            const char *strChar = [str1 cStringUsingEncoding:NSUTF8StringEncoding];//将字符串转化为函数所需类型

            unsigned char result[CC_MD2_DIGEST_LENGTH];//接受结果数组

            //加密

            CC_MD5(strChar, (CC_LONG)str1.length, result);

            NSMutableString *resultString = [[NSMutableString alloc] initWithCapacity:CC_MD5_DIGEST_LENGTH];

            for (int i= 0; i < CC_MD2_DIGEST_LENGTH; i++) {

                //将加密结果的数组以16进制数的形式拼接到可变字符串上

                [resultString appendFormat:@"%02x",result[i]];

            }

            NSLog(@"%@",resultString);

        对文件加密与对字符串加密相同,将文件转化为二进制流(NSData)进行加密,即可.

     

    RSA 加密

    字符串加密类目

    钥匙串加密文件

  • 相关阅读:
    nyoj 329 循环小数【KMP】【求最小循环节长度+循环次数+循环体】
    转 :hdoj 4857 逃生【反向拓扑】
    hdoj 3342 Legal or Not【拓扑排序】
    hdoj 2094 产生冠军
    poj 1789 Truck History【最小生成树prime】
    转:【拓扑排序详解】+【模板】
    hdoj 1285 确定比赛名次【拓扑排序】
    poj 2031 Building a Space Station【最小生成树prime】【模板题】
    zzuoj 10408: C.最少换乘【最短路dijkstra】
    [LC] 232. Implement Queue using Stacks
  • 原文地址:https://www.cnblogs.com/Ager/p/5267229.html
Copyright © 2011-2022 走看看