1

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

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

4

2 回答 2

3

将任何内容存储在持久内存位置是不可能的,NSDefaults也不安全。

Apple 的 KeyChain 正是为此目的而设计的。查看官方Apple 文档

SSKeyChain为 KeyChain API 提供了一个出色且易于使用的包装器。

于 2013-07-02T14:20:23.863 回答
-3

不安全的解决方案

您可以像这样使用 NSUserDefaults :

[[NSUserDefaults standardUserDefaults] setObject: privateKey forkey:@"myKey"];
[[NSUserDefaults standardUserDefaults] synchronize];

并使用以下命令检索它:

[[NSUserDefaults standardUserDefaults] objectForKey:@"myKey"];

顺便一提

要存储 int 值,请使用 setInteger: 而不是 setObject

于 2013-07-02T14:19:45.010 回答