【发布时间】:2014-11-19 21:05:12
【问题描述】:
我想使用 Salt 生成一个用于 AES 256 加密的密钥。我正在使用 BBASE 库,请参考此链接: Create random 128 bit AES Encryption key in iOS
我的代码是:
NSData* salt = [BBAES randomDataWithLength:BBAESSaltDefaultLength];
NSData *key = [BBAES keyBySaltingPassword:@"password" salt:salt keySize:BBAESKeySize256 numberOfIterations:BBAESPBKDF2DefaultIterationsCount];
NSLog(@"Data ASE Key %@",key);
NSString *aString = [[NSString alloc] initWithData:key encoding:NSUTF8StringEncoding];
我想在下面的代码中使用这个“密钥”:(这里我使用的是 RNCryptor lib)
NSData *encryptedData = [ RNEncryptor encryptData:bodyData withSettings:kRNCryptorAES256Settings password:aString error:&error];
NSData *decryptedData = [RNDecryptor decryptData:encryptedData withSettings:kRNCryptorAES256Settings password:aString error:&error];
我需要传递 NSString 类型的键,但是当我将 NSData 转换为 NSString 时,它会给出 NULL 值并且我的应用程序会崩溃。我该怎么办??有什么解决办法吗??
【问题讨论】:
-
RNCryptor 将使用随机盐为您执行密钥派生。你有什么理由想自己做这个推导吗?
标签: ios encryption aes salt rncryptor