• iOS8.1 下使用OpenSSL


    一、下载openssl源码,编译成可调用的库

          为了省去大家的麻烦,特提供现成的openssl库给大家:http://pan.baidu.com/s/1hqpbKpA

      解压,可以看到include文件夹和libcrypto.a 、libssl.a两个文件。

    二、新建项目OpenSSL

          将include文件夹拷贝到项目根目录,

          将libcrypto.a 和 libssl.a拷贝到项目根目录

          在项目中添加以上文件。

        最终的项目结构如下:

           

    三、设置“Header Search Paths” 的值为/Users/huangzhiming/Desktop/work/OpenSSL/OpenSSL/include

          设置“Valid Architectures” 的值为 armv7/armv7s

    四、编写代码。 

      #import <UIKit/UIKit.h>

      #import <openssl/md5.h>

      void Md5( NSString *);

      int main( int argc, char *argv[]) {

          NSAutoreleasePool * pool = [[ NSAutoreleasePool alloc ] init ];

        Md5 ( @"12345" );

          int retVal = UIApplicationMain (argc, argv, nil , nil );

          [pool release ];

          return retVal;

      }

      void Md5( NSString * string){

        // 输入参数 1 :要生成 md5 值的字符串, NSString-->uchar*

          unsigned char *inStrg = ( unsigned char *)[[string dataUsingEncoding :NSASCIIStringEncoding ] bytes];

          // 输入参数 2 :字符串长度

        unsigned long lngth = [string length ];

        // 输出参数 3 :要返回的 md5 值, MD5_DIGEST_LENGTH 为 16bytes , 128 bits

        unsigned char result[ MD5_DIGEST_LENGTH ];

        // 临时 NSString 变量,用于把 uchar* 组装成可以显示的字符串: 2 个字符一 byte 的 16 进制数

        NSMutableString *outStrg = [ NSMutableString string ];

        // 调用 OpenSSL 函数

             MD5 (inStrg, lngth, result);

           unsigned int i;

             for (i = 0; i < MD5_DIGEST_LENGTH ; i++)

          {

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

          }

       NSLog ( @"input string:%@" ,string);

         NSLog ( @"md5:%@" ,outStrg);

    }

    运行,可以看到输出如下:

    input string:12345

    md5:827ccb0eea8a706c4c34a16891f84e7b

  • 相关阅读:
    返回页面顶部的方法
    一个获取当前 url 查询字符串中的参数的方法
    那些让你看起来很牛逼的Docker使用技巧
    Docker 1.13 新特性 —— Docker服务编排相关
    docker1.13新功能network关注点
    Docker 1.13 最实用命令行:终于可以愉快地打扫房间了
    Docker 1.13 – 新增功能大揭秘
    Docker 1.13 编排能力进化
    Docker
    Docker
  • 原文地址:https://www.cnblogs.com/zhimingcow/p/4309244.html
Copyright © 2020-2023  润新知