2012-04-07 3 views
0

Ich habe eine TXT-Datei mit einem NSString (verschlüsselt mit einem privaten Schlüssel), die meine Anwendung verwendet (entschlüsselt mit einem öffentlichen Schlüssel). Alles funktioniert wunderbar für eine Zeichenfolge, aber wenn ich eine andere NSString habe, die ich verwenden möchte, muss ich eine andere separate TXT-Datei mit dem verschlüsselten NSString erstellen. Ich weiß, dass es einen Weg geben muss, alle NSStrings in eine Datei zu packen und irgendwie zu parsen, obwohl ich mir nicht sicher bin, wie ich das erreichen soll. Könnte dies mit einer .plist-Datei geschehen, die alle verschlüsselten Strings enthält? Objective-C beste Methode zum Entschlüsseln von NSStrings aus TXT-Datei

Dies ist ein Beispiel für den Code, den ich verwende, um meine TXT-Datei mit einer NSString zu entschlüsseln:

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

... 

Wenn jemand etwas Licht auf dem Thema mit einem Beispiel Schuppen kann ich es wirklich schätzen würde .

+0

Warum entschlüsseln Sie mit dem öffentlichen Schlüssel? Normalerweise ist es umgekehrt, es sei denn, Sie verwenden es zur Verifizierung und nicht zur Verschlüsselung (und selbst dann würden Sie normalerweise einen starken Hash der Datei und nicht den gesamten Inhalt verifizieren). –

Antwort

1

Machen Sie eine for-Schleife und setzen Sie Ihre decription Code innerhalb außerdem die Zeile ändern

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

an folgende (unter der Annahme i wird die Schleifenvariable):

theString = [array objectAtIndex:i]; 

Wo Sie array erstellt in den Initialisierungsteil Ihres Codes mit:

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

Die angegebene Datei muss ebenfalls ein gültiger PLIST sein, wobei ein Array sein Wurzelelement ist. Beispiel:

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

Hoffe, das hilft.

+0

danke - Ihre Tipps waren hilfreich; genau das was ich gesucht habe. –

+0

Ich bin froh, dass ich dir helfen konnte. :) –

Verwandte Themen