首页 > 编程语言 > 详细

OC的DES加密,使与java的Cipher类用DES/CBC/PKCS5Padding方式的加密结果相同

时间:2014-06-14 07:04:38      阅读:611      评论:0      收藏:0      [点我收藏+]

问题说明:

最近用到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方式的加密结果相同

原文:http://blog.csdn.net/u011439689/article/details/30218873

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!