我正在iOS中生成RSA私钥,并希望在连续运行应用程序之间访问它。似乎无法在持久性内存中保存SecKeyRef类型,因此我想知道是否有任何其他方法可以在NSUserDefaults中保存和加载secKeyRef私钥。我还尝试将privateKey存储在钥匙串中,并将其作为SecKeyRef返回,但没有运气。
有关如何在iOS中的持久内存位置存储私钥的任何建议吗?
答案 0 :(得分:3)
无法在永久性内存位置存储任何内容,NSDefaults
不安全。
Apple的KeyChain就是为了这个目的而制作的。看看官方Apple Documentation。
SSKeyChain为KeyChain API提供了一个简单易用的包装器。
答案 1 :(得分:-3)
不安全的解决方案
你可以像这样使用NSUserDefaults:
[[NSUserDefaults standardUserDefaults] setObject: privateKey forkey:@"myKey"];
[[NSUserDefaults standardUserDefaults] synchronize];
并使用以下方法检索它:
[[NSUserDefaults standardUserDefaults] objectForKey:@"myKey"];
顺便提一下
要存储int值,请使用setInteger:而不是setObject