2013-10-22 48 views
1

我使用RNCryptor来加密来自UITextview的消息并发送此消息。我想做相反的动作。即当接收者从他的收件箱复制加密的消息并复制到iOS应用程序中的UITextView,并且当他按下解密时,他希望看到原始消息。我怎么能解密邮件,因为它的形式是NSString而不是NSData
我试图在RNCryptor转换之前使用下面的代码进行转换。但我失败了。RNCryptor解密来自UITextview的消息iOS

NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding]; 

str是收件箱中的字符串。

这是加密和解密代码:

NSData *encryptedData = [RNEncryptor encryptData:data 
            withSettings:kRNCryptorAES256Settings 
             password:kPASSWORD 
              error:&error]; 

NSData *decryptedData = [RNDecryptor decryptData:datatoDecrypt 
            withPassword:kPASSWORD 
              error:&error]; 
+0

RNCryptor使用'Base64'编码,而不是UTF8。尝试使用NSData的新内置Base64编码功能。 –

+0

RNCryptor不使用Base64编码。它仅适用于明文和密文的NSData。调用者可以根据需要随意创建NSData。上面的代码看起来没问题。这可能是创建“datatoDecrypt”时的错误。 –

回答

0

你能在下面的代码提供错误信息:

if (error) { 
    NSLog(@"cannot decrypt with error %@", [error description]); 
}