返回加密的字符串以放置在表单变量中

时间:2014-08-14 18:05:44

标签: ios encryption

所以我正在使用RNEncryptor。似乎工作得很好。我的问题是我发送给服务器的表单变量需要是字符串格式。我尝试过使用:[[NSString alloc] initWithData:encryptedData encoding:NSUTF8StringEncoding];,我得到了一个零响应。我不明白为什么这个零反应正在发生。 注意:我不在乎解密字符串。我只需要将加密的消息放在字符串中。这是我的代码:

  NSError *error;
             NSData * data = [localQuery dataUsingEncoding:NSUTF8StringEncoding];  
         NSData*   encryptedData = [RNEncryptor encryptData:data
                                                withSettings:kRNCryptorAES256Settings
                                                    password:key
                                                       error:&error];
            //Returning nil response 
          NSString *   encryptedQuery = [[NSString alloc] initWithData:encryptedData encoding:NSUTF8StringEncoding];

希望我清楚每个人都能理解。谢谢!

1 个答案:

答案 0 :(得分:1)

您收到的是零响应,因为并非所有数据都是:NSUTF8StringEncoding`编码。

如果您需要一个字符串,那么将数据转换为Base64字符串,这就是您的问题通常得到解决的方式。

而不是:

NSString *encryptedQuery = [[NSString alloc] initWithData:encryptedData encoding:NSUTF8StringEncoding];

Base64对数据进行编码:

NSString *encryptedQuery = [encryptedData base64EncodedStringWithOptions:0];