2016-01-20 161 views
0

我正在开发一个iOS应用程序,其中: 我打电话给Java Web服务。AES加密和解密数据

服务发送我下面的数据:

  1. 盐值(Base64编码)
  2. Base64编码的关键
  3. 加密数据

现在我需要解码此键和使用它用于解密相同的数据。

与我的问题是,当我尝试解码密钥我得到零 NSString

这里的是,我一直在努力代码:

NSData *cipherKeyData = [[NSData alloc] initWithBase64EncodedString:@"W0JAM2IwMDVhYmM=" options:NSUTF8StringEncoding]; 
NSString *strKey = [[NSString alloc] initWithData:cipherKeyData encoding:NSUTF8StringEncoding]; 

因此,我不能够对数据进行解密。 任何人都可以请帮我解决这个问题。

回答

0

第一个strKey是一个字符串:“[B @ 3b005abc”,我没有得到nil

键一般是数据,cipherKeyData是关键。密钥在Base64中提供的原因是因为实际密钥是数据,而不是字符串。不需要进一步转换为字符串。 Common Crypto加密功能的关键参数是数据,而不是NSString

并非所有的数据都可以转换为字符串,有数据字节和UTF- *序列是非法的代码点。在问题中,数据将转换为字符串“[B @ 3b005abc”。