无法将NSData转换为NSString

时间:2014-05-08 23:50:14

标签: ios objective-c nsstring nsdata

我有正在加密的文字如下:

NSData *data = [text dataUsingEncoding:NSUTF8StringEncoding];
NSError *error;
NSData *encryptedData = [RNEncryptor encryptData:data withSettings:kRNCryptorAES256Settings password:[loggedUser getKey]error:&error];

然后我试图将字符串转换并将其存储在某处。这就是我想要的:

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

但是,即使调试器显示convertedString始终在其中包含数据,字符串encryptedData也始终为null / nil。如何将其转换为字符串?另外,沿着相同的路线,如何将其转换回NSData以便稍后解密?

以下是我尝试转换的NSData的示例输出:

  

打印encryptedData的描述:< 0301ff17 956167db a88cdc14   7cab1a85 28ad01c9 78c5a843 ecf22404 9c2c6915 7681277b 6e1161d8   1dd1122b 29c65f76 8bf95652 791cf2b0 3231b7b6 dbd00cb6 56301058   bfdebd9c 5edfcfe2 bc21c4fc 707a>

2 个答案:

答案 0 :(得分:2)

您应该直接发送NSData。或base64使用base64EncodedStringWithOptions:

对其进行编码

答案 1 :(得分:0)

试试这个:

NSString *a = [[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:NSASCIIStringEncoding];

除UTF-8编码外最常见的是:

  • NSASCIIStringEncoding
  • NSUnicodeStringEncoding
  • NSISOLatin1StringEncoding
  • NSISOLatin2StringEncoding
  • NSSymbolStringEncoding