从钥匙串生成用于 AES 256 加密的密钥

Generating secret key for AES 256 Encryption from Keychain

我正在做一个项目,我需要在本地 encrypt/decrypt 一些数据。我正在使用 RNCryptor 进行加密和解密过程。为此,我需要使用密钥,我不想从应用程序端定义该密钥,例如:

NSString *password = @"Secret password";

有什么方法可以使用钥匙串中的任何 属性 来定义密钥,这样我就可以使用相同的密钥而无需在代码库中定义它。

如果您不想声明静态密钥或从静态密码派生密钥,您当然可以派生随机密钥并将该值存储在钥匙串中。 SecRandomCopyBytes 将 return 以加密安全方式生成的任意长度的数组。您可以从此服务请求 32 字节(256 位)并将其作为您的密钥存储在钥匙串中。显然要注意,如果你多次调用它,它不会 return 相同的结果,所以一旦你存储了它,你就不能丢失它。

您可以在 github

中试用 SAMKeychain

https://github.com/soffes/SAMKeychain