ios -OpenSSL

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

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

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

二、新建项目OpenSSL

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

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

在项目中添加以上文件。

最终的项目结构如下:

ios -OpenSSL_第1张图片

三、设置“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);

}

你可能感兴趣的