Objective-C从.txt文件解密NSStrings的最佳方法

时间:2012-04-07 17:33:54

标签: objective-c public-key-encryption encryption

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

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

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);

...

如果有人可以用一个例子说明这个问题,我会非常感激。

1 个答案:

答案 0 :(得分:1)

制作一个for循环并将你的描述代码放在里面,然后修改行

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

以下(假设i是循环变量):

 theString = [array objectAtIndex:i];

您在代码的初始化部分创建array的位置,使用:

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

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

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

希望这有帮助。