1

このコードを使用して、RNcryptor 経由でテキスト ファイルの暗号化に成功しました

NSFileManager *filemgr;
NSData *databuffer;

filemgr = [NSFileManager defaultManager];
NSString *destPath = @"Users/DivyaDinesh/Downloads/abcde";
databuffer = [filemgr contentsAtPath: @"Users/DivyaDinesh/Downloads/abcd" ];

NSError *error;
NSData *encryptedData = [RNEncryptor encryptData:databuffer
                                withSettings:kRNCryptorAES256Settings
                                        password:@"ABC123"
                                           error:&error];
[encryptedData writeToFile:destPath atomically:YES];

次に、このコードを使用して同じものを解読しようとしました

NSString *destPath1 = @"Users/DivyaDinesh/Downloads/abcdg";
NSData *encryptedData = [NSData dataWithContentsOfFile:@"Users/DivyaDinesh/Downloads/abcde"];


NSError *error;

NSData *decryptedData = [RNDecryptor decryptData:encryptedData  withPassword:@"ABC123" error:&error];
[decryptedData writeToFile:destPath1 atomically:YES];

出力として空白のテキスト ファイルが表示されます。何が間違っているのでしょうか? 助けてください

なぜ?これを修正する方法は誰でも解決策を与えることができます

4

1 に答える 1

0

その場合は、ファイルが破損しているか、システムがファイルを取得していないと思います。あることをして、別のファイルの暗号化と復号化を試み、それが機能するかどうかを試してください。

Macでtexteditでテキストファイルを作成しようとすると、Macでsomefile.txtと言う"cannot save this document with extension txt to the end of the name"ように保存すると、警告が表示されてそのように表示されることがあります。「.txt」で保存しようとすると発生することに注意してください」をその名前の末尾まで延長します。

テキスト編集でファイルを作成し、質問で言ったように暗号化すると、そのサイズが82バイトになり、テキスト編集でさらに2つのファイルを作成し、同じサイズの82を含むファイルを暗号化しました。同じファイルを復号化すると、復号化されたファイルのサイズは 0 バイトとして表示され、内容はまったくありません。復号化されたファイルを 0 バイトとして取得しているかどうかはわかりません。

次に、暗号化するソースファイルとして、Mac Book に存在しないファイルを指定しました。不思議なことに、私が提供した名前の暗号化されたファイルを取得しましたが、それも同じ 82 バイトのサイズです!!

次に、解決策として、texteditでテキストファイルを作成し、rtfとして保存してから、システムに保存した場所に移動し、ファイルの名前を次のように変更します。

ファイル名が somefile の場合は、名前を somefile.txt に変更します。

ここで、暗号化と復号化をもう一度試してみてください。うまくいきます:-)

于 2015-02-06T06:43:59.430 に答える