【发布时间】:2012-05-28 14:29:19
【问题描述】:
之前我做了三重DES加密,通过定义一个方法使用字符串密钥文件加密一些数据
+ (NSData *)tripleDESEncryptWithKey:(NSString *)key dataToEncrypt:(NSData*)convertedData {}.
现在,我同样在进行 AES 256 加密。但这一次,我不能使用字符串作为键。我需要使用
从资源文件中获取 NSDataNSData *keyData = [NSData dataWithContentsOfFile:keyPath];
由于我需要将此键作为参数传递,因此我尝试使用
将其转换为字符串NSString *key = [[NSString alloc] initWithData:keyData encoding:NSUTF8StringEncoding];
但它返回 NULL。那么,如何使用 Data 密钥进行 AES 256 加密?
编辑:我知道我不应该使用 UTF8 编码,因为数据文件是由字符串的 Base64 编码制成的。所以现在的问题是,如何从 keyData 使用 Base64 获取字符串键?
【问题讨论】:
-
您是否已经使用断点工具来确保
keyData变量不是NULL?检查你的keyPath -
Keypath 没问题。密钥数据也存在:。我用断点检查了很久。
标签: objective-c ios xcode