美文网首页
ios -OpenSSL

ios -OpenSSL

作者: cym_bj | 来源:发表于2015-12-18 16:47 被阅读2641次

    一、下载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 

    #import

    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 :字符串长度

    unsignedlonglngth = [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);

    }

    相关文章

      网友评论

          本文标题:ios -OpenSSL

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