所以我正在使用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];
希望我清楚每个人都能理解。谢谢!
答案 0 :(得分:1)
您收到的是零响应,因为并非所有数据都是:NSUTF8StringEncoding`编码。
如果您需要一个字符串,那么将数据转换为Base64字符串,这就是您的问题通常得到解决的方式。
而不是:
NSString *encryptedQuery = [[NSString alloc] initWithData:encryptedData encoding:NSUTF8StringEncoding];
Base64对数据进行编码:
NSString *encryptedQuery = [encryptedData base64EncodedStringWithOptions:0];