将私钥存储在iOS中的持久内存位置

时间:2013-07-02 14:15:34

标签: ios objective-c nsuserdefaults

我正在iOS中生成RSA私钥,并希望在连续运行应用程序之间访问它。似乎无法在持久性内存中保存SecKeyRef类型,因此我想知道是否有任何其他方法可以在NSUserDefaults中保存和加载secKeyRef私钥。我还尝试将privateKey存储在钥匙串中,并将其作为SecKeyRef返回,但没有运气。

有关如何在iOS中的持久内存位置存储私钥的任何建议吗?

2 个答案:

答案 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