0

iOS 开发人员的新手,尝试对数据进行编码以在 db 中进行安全数据存储。

我在这里找到了当前示例:https ://github.com/RNCryptor/RNCryptor-objc

这是我的代码。

NSString * aPassword =@"tempkey";

NSData *data = [@"Data" dataUsingEncoding:NSUTF8StringEncoding];
NSError *error;
NSData *encryptedData = [RNEncryptor encryptData:data
                                    withSettings:kRNCryptorAES256Settings
                                        password:aPassword
                                           error:&error];


NSLog(@"Data: %@", [[NSString alloc] initWithData:encryptedData encoding:NSUTF8StringEncoding]);

我的日志

2016-10-20 11:41:52.662 BlueBoard[57245:10027277] Data: (null)

我错过了这个过程中的一步吗?我已经确认它是空的,因为它的数据库也被存储为空。

4

1 回答 1

4

您的问题不是,encryptedData而是nil您试图NSString从不代表字符串的数据创建一个。

如果您希望转换encryptedData为字符串以用于存储或其他目的,则应将数据转换为 Base 64 编码表示。用方法做到这一点base64EncodedStringWithOptions:

NSString *base64String = [encryptedData base64EncodedStringWithOptions:0];

当然,当您稍后要解密字符串时,您需要将 Base 64 编码的字符串转换回NSData,然后解密该数据。

于 2016-10-20T17:09:50.973 回答