cd openssl-1.0.0a mkdir openssl_armv6 openssl_armv7 openssl_i386执行目录下的congfigure:
./configure BSD-generic32 --openssldir=/Users/<username>/openssl-1.0.0a/openssl_i386编辑 makefile 文件,找到:
CC= /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc -arch i386
下一行,在CFLAG = 的后面增加
-isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk
进行编译:
make make install检查 openssl_i386/lib目录下 libcrypto.a 和 libssl.a 是否生成。
mv openssl_i386 ../ssllibs清除上次编译的配置:
make clean
执行configure,重新生成新的编译配置:
./configure BSD-generic32 --openssldir=/Users/<username>/openssl-1.0.0a/openssl_armv6修改 makefile 文件,将 CC=gcc修改为:
CC= /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv6注意,这里是iPhoneOS.platform而不是先前的 iPhoneSimulator.platform了。
-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk可以进行编译了:
make make install检查 openssl_armv6/lib 目录下 libcrypto.a 和 libssl.a 是否生成。
mv openssl_armv6 ../ssllibs清除前面编译配置:
make clean
执行configure配置编译环境:
./configure BSD-generic32 --openssldir=/Users/<username>/openssl-1.0.0a/openssl_armv7修改 makefile 文件,将 CC=cc修改为:
CC= /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv7注意,gcc 编译选项 arch 由 armv6 变为了 armv7。
同时,在CFLAG=后面添加:
-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk进行编译:
make make install检查 openssl_armv7/lib 目录下 libcrypto.a 和 libssl.a 是否生成。
mv openssl_armv7 ../ssllibs
lipo -create ../ssllibs/openssl_i386/lib/libcrypto.a ../ssllibs/openssl_armv6/lib/libcrypto.a ../ssllibs/openssl_armv7/lib/libcrypto.a -output ../ssllibs/libcrypto.a合并 libssl.a 库:
lipo -create ../ssllibs/openssl_i386/lib/libssl.a ../ssllibs/openssl_armv6/lib/libssl.a ../ssllibs/openssl_armv7/lib/libssl.a -output ../ssllibs/libssl.a
#import <UIKit/UIKit.h> #include <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 = ; i < MD5_DIGEST_LENGTH ; i++) { [outStrg appendFormat : @"%02x" , result[i]]; } NSLog ( @"input string:%@" ,string); NSLog ( @"md5:%@" ,outStrg); }你可以在控制台查看程序的输出: