2012-04-07 29 views
0

我已经有一个包含我的应用程序使用(使用公钥解密)的NSString(使用私钥加密)的.txt文件。对于一个字符串,一切都很好,但是,如果我有另一个我想使用的NSString,我必须用该加密的NSString创建另一个单独的.txt文件。我知道必须有一种方法可以将所有NSString放在一个文件中,并以某种方式解析它,但我不确定如何实现这一点。可以使用包含所有加密字符串的.plist文件来完成吗?Objective-C从.txt文件解密NSString的最佳方法

这是我使用解密我的.txt文件与一个NSString的代码示例:

NSString *filePath = @"/path/to/file.txt"; 

    if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) { 
     crypto = [[MyCrypto alloc] initWithPublicKey:publicKeyData privateKey:privateKeyData]; 

     NSError *err; 

     theString = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&err]; 

     if (!theString) { 
      NSLog(@"error: %@", err); 
     } 

[crypto setClearTextWithString:theString]; 
decryptedTextData = [crypto decrypt]; 
NSLog(@"Decrypted: %@", theString); 

... 

如果有人能与一个例子,我会真正体会到它的主题提供一些线索。

+0

你为什么使用公钥解密?这通常是相反的,除非你使用它来验证而不是加密(甚至在这种情况下,你通常会验证文件的强散列而不是整个内容)。 – 2012-05-02 07:18:31

回答

1

做一个for循环,把你能解密代码中,进一步修改行

theString = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&err]; 

以下(假设i是循环变量):如果你在创建array

theString = [array objectAtIndex:i]; 

您的代码的初始化部分,使用:

NSArray *array = [NSArray arrayWithContentsOfFile:@"file.txt"]; 

指定的文件也必须是有效的PLIST,一个数组是其根元素。例如:

<plist> 
<array> 
    <string>alshnj369537nwlzba</string> 
    <string>9ö876534tzhwjukmhnlfb</string> 
    <!-- et cetera... --> 
</array> 
<plist> 

希望这会有所帮助。

+0

谢谢 - 你的提示很有帮助;正是我所期待的。 – 2012-04-07 19:22:00

+0

很高兴我能帮助你。 :) – 2012-04-07 21:41:05

相关问题