iOS oc des加密 转自网络。

来源:互联网 发布:python 字符串补零 编辑:程序博客网 时间:2024/06/04 19:47
这里使用框架提供的des加解密库:首先引入头文件 #import <CommonCrypto/CommonCryptor.h>主要的加解密函数如下:

+(NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key

{

   NSString *ciphertext =nil;

   constchar *textBytes = [plainTextUTF8String];

   NSUInteger dataLength = [plainTextlength];

   unsignedchar 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,

                                          [keyUTF8String],kCCKeySizeDES,

                                          iv,

                                          textBytes, dataLength,

                                          buffer,1024,

                                          &numBytesEncrypted);

   if (cryptStatus ==kCCSuccess) {

       NSData *data = [NSDatadataWithBytes:bufferlength:(NSUInteger)numBytesEncrypted];

        

        ciphertext = [[NSStringalloc]initWithData:[database64EncodedDataWithOptions:NSDataBase64Encoding64CharacterLineLength]encoding:NSUTF8StringEncoding];

    }

   return ciphertext;

}


//解密 暂时没有用到

+ (NSString *) decryptUseDES:(NSString*)cipherText key:(NSString*)key

{

   NSData * cipherData = [NSDatadataFromBase64String:cipherText];

   unsignedchar 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,

                                          [keyUTF8String],

                                         kCCKeySizeDES,

                                          iv,

                                          [cipherDatabytes],

                                          [cipherDatalength],

                                          buffer,

                                         1024,

                                          &numBytesDecrypted);

   NSString* plainText =nil;

   if (cryptStatus ==kCCSuccess) {

       NSData* data = [NSDatadataWithBytes:bufferlength:(NSUInteger)numBytesDecrypted];

        plainText = [[[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding]autorelease];

    }

   return plainText;

}


其中的base64方法网上自己百度下吧 很多的。 iv向量改成你需要的  key就是你们自己选好的key值 例如 

39D}!Az5


0 0
原创粉丝点击