12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- //
- // DES3Util.m
- // Miaxis
- //
- // Created by tongjun on 14-1-14.
- // Copyright (c) 2014年 tongjun. All rights reserved.
- //
- #import "DES3Util.h"
- #import <CommonCrypto/CommonCrypto.h>
- #import "GTMBase64.h"
- /*
- yanlxtongjun@miaxis110$#365#$
- */
- #define gkey @"fujianxzz110@kestrel$#365#$"
- #define gIv @"01234567"
- @implementation DES3Util
- // 加密方法
- + (NSString*)encrypt:(NSString*)plainText {
- NSData* data = [plainText dataUsingEncoding:NSUTF8StringEncoding];
- size_t plainTextBufferSize = [data length];
- const void *vplainText = (const void *)[data bytes];
-
- CCCryptorStatus ccStatus;
- uint8_t *bufferPtr = NULL;
- size_t bufferPtrSize = 0;
- size_t movedBytes = 0;
-
- bufferPtrSize = (plainTextBufferSize + kCCBlockSize3DES) & ~(kCCBlockSize3DES - 1);
- bufferPtr = malloc( bufferPtrSize * sizeof(uint8_t));
- memset((void *)bufferPtr, 0x0, bufferPtrSize);
-
- const void *vkey = (const void *) [gkey UTF8String];
- const void *vinitVec = (const void *) [gIv UTF8String];
-
- ccStatus = CCCrypt(kCCEncrypt,
- kCCAlgorithm3DES,
- kCCOptionPKCS7Padding,
- vkey,
- kCCKeySize3DES,
- vinitVec,
- vplainText,
- plainTextBufferSize,
- (void *)bufferPtr,
- bufferPtrSize,
- &movedBytes);
- //NSLog(@"%d",ccStatus);
- if (ccStatus != kCCSuccess) {
- return @"des3EncryptError";
- }
- NSData *myData = [NSData dataWithBytes:(const void *)bufferPtr length:(NSUInteger)movedBytes];
- NSString *result = [GTMBase64 stringByEncodingData:myData];
- return result;
- }
- // 解密方法
- + (NSString*)decrypt:(NSString*)encryptText {
- NSData *encryptData = [GTMBase64 decodeData:[encryptText dataUsingEncoding:NSUTF8StringEncoding]];
- size_t plainTextBufferSize = [encryptData length];
- const void *vplainText = [encryptData bytes];
-
- CCCryptorStatus ccStatus;
- uint8_t *bufferPtr = NULL;
- size_t bufferPtrSize = 0;
- size_t movedBytes = 0;
-
- bufferPtrSize = (plainTextBufferSize + kCCBlockSize3DES) & ~(kCCBlockSize3DES - 1);
- bufferPtr = malloc( bufferPtrSize * sizeof(uint8_t));
- memset((void *)bufferPtr, 0x0, bufferPtrSize);
-
- const void *vkey = (const void *) [gkey UTF8String];
- const void *vinitVec = (const void *) [gIv UTF8String];
-
- ccStatus = CCCrypt(kCCDecrypt,
- kCCAlgorithm3DES,
- kCCOptionPKCS7Padding,
- vkey,
- kCCKeySize3DES,
- vinitVec,
- vplainText,
- plainTextBufferSize,
- (void *)bufferPtr,
- bufferPtrSize,
- &movedBytes);
- //NSLog(@"%d",ccStatus);
- if (ccStatus != kCCSuccess) {
- return @"des3DecryptError";
- }
- NSString *result = [[NSString alloc] initWithData:[NSData dataWithBytes:(const void *)bufferPtr
- length:(NSUInteger)movedBytes] encoding:NSUTF8StringEncoding];
- return result;
- }
- @end
|