java公钥+cliper加密_OC的DES加密,使与java的Cipher类用DES/CBC/PKCS5Padding方式的加密结果相同...

问题说明:

最近用到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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值