Java AES数据加密和解密

Java AES数据加密和解密,java,ios,objective-c,iphone,encryption,Java,Ios,Objective C,Iphone,Encryption,我正在开发一个iOS应用程序,其中: 我正在调用一个Javaweb服务 该服务向我发送以下数据: 盐值(Base64编码) Base64编码密钥 加密数据 现在我需要解码这个密钥,并使用它来解密相同的数据 我的问题是,当我试图解码密钥时,我得到了零 NSString 下面是我一直在尝试的代码: NSData *cipherKeyData = [[NSData alloc] initWithBase64EncodedString:@"W0JAM2IwMDVhYmM=" options:NSUTF8

我正在开发一个iOS应用程序,其中: 我正在调用一个Javaweb服务

该服务向我发送以下数据:

  • 盐值(Base64编码)
  • Base64编码密钥
  • 加密数据
  • 现在我需要解码这个密钥,并使用它来解密相同的数据

    我的问题是,当我试图解码密钥时,我得到了零
    NSString

    下面是我一直在尝试的代码:

    NSData *cipherKeyData = [[NSData alloc] initWithBase64EncodedString:@"W0JAM2IwMDVhYmM=" options:NSUTF8StringEncoding];
    NSString *strKey = [[NSString alloc] initWithData:cipherKeyData encoding:NSUTF8StringEncoding];
    
    因此,我无法解密数据。
    谁能帮我解决这个问题。

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

    密钥通常是数据,
    cipherKeyData
    是密钥。在Base64中提供密钥的原因是实际密钥是数据,而不是字符串。无需进一步转换为字符串。通用加密函数的密钥参数是数据,而不是
    NSString

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