这里使用框架提供的des加解密库: 首先引入头文件 #import <CommonCrypto/CommonCryptor.h>
主要的加解密函数如下:
/*字符串加密*参数*plainText : 加密明文*key : 密钥 64位*/+ ( NSString * ) encryptUseDES : ( NSString * ) plainText key : ( NSString * ) key{NSString * ciphertext = nil ;const char * textBytes = [ plainText UTF8String ] ;NSUInteger dataLength = [ plainText length ] ;unsigned char buffer [ 1024 ] ;memset ( buffer , 0 , sizeof ( char ) ) ;Byte iv [ ] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 } ;size_t numBytesEncrypted = 0 ;CCCryptorStatus cryptStatus = CCCrypt ( kCCEncrypt , kCCAlgorithmDES ,kCCOptionPKCS7Padding ,[ key UTF8String ] , kCCKeySizeDES ,iv ,textBytes , dataLength ,buffer , 1024 ,& numBytesEncrypted ) ;if ( cryptStatus = = kCCSuccess ) {NSData * data = [ NSData dataWithBytes : buffer length : ( NSUInteger ) numBytesEncrypted ] ;ciphertext = [ [ [ NSString alloc ] initWithData : [ GTMBase64 encodeData : data ] encoding : NSUTF8StringEncoding ] autorelease ] ;}return ciphertext ;}//解密+ ( NSString * ) decryptUseDES : ( NSString * ) cipherText key : ( NSString * ) key{NSData * cipherData = [ GTMBase64 decodeString : cipherText ] ;unsigned char buffer [ 1024 ] ;memset ( buffer , 0 , sizeof ( char ) ) ;size_t numBytesDecrypted = 0 ;Byte iv [ ] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 } ;CCCryptorStatus cryptStatus = CCCrypt ( kCCDecrypt ,kCCAlgorithmDES ,kCCOptionPKCS7Padding ,[ key UTF8String ] ,kCCKeySizeDES ,iv ,[ cipherData bytes ] ,[ cipherData length ] ,buffer ,1024 ,& numBytesDecrypted ) ;NSString * plainText = nil ;if ( cryptStatus = = kCCSuccess ) {NSData * data = [ NSData dataWithBytes : buffer length : ( NSUInteger ) numBytesDecrypted ] ;plainText = [ [ [ NSString alloc ] initWithData : data encoding : NSUTF8StringEncoding ] autorelease ] ;}return plainText ;}
注:函数中使用到了Base64的编解码,请到下面地址中下载相应库
http://www.jguoer.com/blog/wp-content/uploads/2010/1/base64.zip