标签:des descbcpkcs5padding cccrypt cipher ios
最近用到DES加密,并且要与java的Cipher类加密的结果保持一致。没研究过java的Cliper,但工作中Cipher根据DES/CBC/PKCS5Padding加密方式生成了一个字符串。比较后发现,此字符串与将OC加密生成的NSData直接用字符串格式化([NSString stringWithFormat:@"%@",data])相同。所以就先这么用了。
#import "CommonCrypto/CommonCryptor.h"
+ (NSString *)encryptUseDES:(NSString *)plainText andKey:(NSString *)authKey andIv:(NSString *)authIv{
const void *iv = (const void *) [authIv UTF8String];
NSString *ciphertext = nil;
NSData *textData = [plainText dataUsingEncoding:NSUTF8StringEncoding];
NSUInteger dataLength = [textData length];
unsigned char buffer[1024];
memset(buffer, 0, sizeof(char));
size_t numBytesEncrypted = 0;
CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt,
kCCAlgorithmDES,
kCCOptionPKCS7Padding,
[authKey UTF8String],
kCCKeySizeDES,
iv,
[textData bytes],
dataLength,
buffer,
1024,
&numBytesEncrypted);
if (cryptStatus == kCCSuccess) {
NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];
NSString *oriStr = [NSString stringWithFormat:@"%@",data];
NSCharacterSet *cSet = [NSCharacterSet characterSetWithCharactersInString:@"< >"];
ciphertext = [[oriStr componentsSeparatedByCharactersInSet:cSet] componentsJoinedByString:@""];
}
return ciphertext;
}OC的DES加密,使与java的Cipher类用DES/CBC/PKCS5Padding方式的加密结果相同,布布扣,bubuko.com
OC的DES加密,使与java的Cipher类用DES/CBC/PKCS5Padding方式的加密结果相同
标签:des descbcpkcs5padding cccrypt cipher ios
原文地址:http://blog.csdn.net/u011439689/article/details/30218873