iOS8.1 下使用OpenSSL

1、下載openssl源碼,編譯成可調用的庫app

      爲了省去你們的麻煩,特提供現成的openssl庫給你們:http://pan.baidu.com/s/1hqpbKpA
函數

  解壓,能夠看到include文件夾和libcrypto.a 、libssl.a兩個文件。orm

 

2、新建項目OpenSSLblog

      將include文件夾拷貝到項目根目錄,md5

      將libcrypto.a 和 libssl.a拷貝到項目根目錄ssl

      在項目中添加以上文件。字符串

    最終的項目結構以下:get

       

 

 

3、設置「Header Search Paths」 的值爲/Users/huangzhiming/Desktop/work/OpenSSL/OpenSSL/includeinput

      設置「Valid Architectures」 的值爲 armv7/armv7s源碼

 

 

4、編寫代碼。 

  #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

相關文章
相關標籤/搜索