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 中发生,并且当您将其保存为 say somefile.txt 时会出现警告并"cannot save this document with extension txt to the end of the name"这样说,请注意,当您尝试使用“.txt”保存它时会发生这种情况" 延伸到其名称的末尾。

我在 textedit 中创建了一个文件,当我像你在问题中所说的那样加密时,我得到它的大小为 82 字节,然后我在文本编辑中创建了另外 2 个文件并加密它们,它们也包含相同的大小 82。我无法解密相同的文件,解密后的文件大小显示为0bytes,完全没有内容。我不知道您是否将解密文件设为 0 字节。

然后我给了一个我的mac book中不存在的文件作为要加密的源文件。令我惊讶的是,我得到了一个具有我提供的名称的加密文件,而且它也具有相同的 82 字节大小!

然后为解决方案在 textedit 中创建一个文本文件并保存为 rtf,然后转到您在系统中存储它的位置,并像这样重命名文件。

如果您的文件名是 somefile,则将其重命名为 somefile.txt。

现在尝试再次进行加密和解密,它将起作用:-)

于 2015-02-06T06:43:59.430 回答