首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >iPhone (Objective-c)与Java的AES比较

iPhone (Objective-c)与Java的AES比较
EN

Stack Overflow用户
提问于 2009-10-29 01:59:18
回答 5查看 12.5K关注 0票数 16

我一整天都在绞尽脑汁想解决这个问题...

我有一个在iPhone上运行的objective-c客户机,它连接到一个Java服务器。iPhone正在使用AES加密数据,但我无法在服务器上解密它。我使用已知的密码和消息(单字符串),并在iPhone上生成字节数组,在Java服务器上使用相同的键和消息生成一个比较字节数组,但是字节数组完全不同(因此在Java端无法解码)。

客户端正在使用具有以下设置的CommonCrypto库...

Data是保存单词"message“的NSData,使用dataUsingEncoding:NSASCIIStringEncoding Key是保存短语"1234567891123456”的NSData,再次使用如上的编码。Algorithm is ECB Options is kCCOptionsPKCS7Padding (我相信这等同于服务器上的kCCAlgorithmAES128?!)

服务器正在使用以下代码...

byte[] key = "1234567891123456".getBytes();
Cipher c = Cipher.getInstance("AES/ECB/PKCS5Padding");

SecretKeySpec k =  new SecretKeySpec(key, "AES");
c.init(Cipher.ENCRYPT_MODE, k);
byte[] encryptedData = c.doFinal("message".getBytes());

但是encryptedData中的数据与objective-c代码中生成的数据不匹配,字节数组完全不同。

有没有人看得出我做错了什么?我想设置都是一样的.:(

  • 更新-根据请求...

好的,这就是……

iPhone客户端正在加密以下字符串"message“,它使用密钥"1234567891123456”,它使用初始化向量"1010101010101010“,它使用AES128、CBC模式(据我所知)和kCCOptionsPKCS7Padding选项。

加密(使用base64编码)的结果是UHIYllDFAXl81ZM7OZPAuA==

服务器使用相同的密钥和初始化向量加密相同的字符串。它正在使用下面的Cipher.getInstance(“AES/CBC/pkcs5padding.”);

加密(使用base64编码)的结果是ALBnFIHysLbvAxjvtNo9vQ==

谢谢。

  • 更新2- As requested...

这是iPhone代码...

NSData *toencrypt = [@"message" dataUsingEncoding:NSASCIIStringEncoding];

NSData *pass = [@"1234567891123456" dataUsingEncoding:NSASCIIStringEncoding];

NSData *iv = [@"1010101010101010" dataUsingEncoding:NSASCIIStringEncoding];    

CCCryptorStatus status = kCCSuccess;

NSData *encrypted = [toencrypt dataEncryptedUsingAlgorithm:kCCAlgorithmAES128 key:pass initializationVector:iv options:kCCOptionPKCS7Padding error:&status];

NSString *text = [NSString base64StringFromData:encrypted length:[encrypted length]];

用于加密的NSData类别来自这里...

http://github.com/AlanQuatermain/aqtoolkit/tree/master/CommonCrypto/

顺便说一下,我检查了加密、传递和iv中的字节数组,它们与服务器上的字节数组相匹配。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1638971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档