我的可可应用程序将具有以下功能: 1. 密码保护登录。用户必须输入密码才能使用该应用程序 2. 登录后,用户可以创建一些个人资料,该资料可以存储一些安全信息,如密码。
经过一番研究,我被告知我应该使用 KeyChain 来保存安全信息(所以在我的情况下,每个个人资料中的登录密码和安全信息)。
似乎有一个很好的 KeyChain 包装器 SSKeyChain 可以用来实现我的目标(因为我对 c lang 不太熟悉,所以使用苹果的钥匙串对我来说很难)而且我还找到了一些使用 SSKeyChain 的示例iOS:如何在应用程序中存储用户名/密码?:
To save a password:
[SSKeychain setPassword:@"AnyPassword" forService:@"AnyService" account:@"AnyUser"]
To retrieve a password:
NSString *password = [SSKeychain passwordForService:@"AnyService" account:@"AnyUser"];
但是我不确定我是否需要“保护”我的钥匙串: 1. 调用 setPassword:forService:account 时:我应该包含明文密码吗?还是我需要先加密我的密码?同样在设置服务名称时,我是否应该只包含我的应用程序名称 2. 如果可以使用 passwordForService: 轻松检索密码,那么它似乎不安全?因为其他应用程序也可以调用相同的方法来检索钥匙串?(前提是他们知道服务名称和帐户)
似乎你必须“锁定”和“解锁”这个钥匙串。我检查了 SSKeyChain 文档http://docs.samsoff.es/SSKeychain/Classes/SSKeychain.html但找不到任何“锁定”和“解锁”此类钥匙串的方法。那我要怎么保护呢?