【发布时间】:2014-05-08 23:50:13
【问题描述】:
我有如下加密的文本:
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 始终为 null/nil,即使调试器向我显示 encryptedData 中始终包含数据。如何将其转换为字符串?另外,按照同样的思路,如何将其转换回NSData 以便稍后解密?
这是我正在尝试转换的NSData 的示例输出:
encryptedData的打印说明:
【问题讨论】:
-
您必须从解密数据而不是加密数据创建字符串。您必须完全反转用于加密字符串的代码。
-
我的目标是创建 NSData 的字符串形式,以便我可以通过网络发送它。我完全理解它在这种状态下是不可读的。我的网络服务(解析)不会直接接受 NSData。
-
您应该直接发送
NSData。或base64编码 -
@johnhannigan Bryan 是正确的,您需要对加密数据使用 base64 编码。这将为您提供一个可以发送到服务器的字符串。当然,这假设服务器需要加密数据的 base64 字符串表示。
-
谢谢@BryanChen,成功了。如果你或 rmaddy 做出回答,我会接受。
标签: ios objective-c nsstring nsdata