我的可可应用程序将有以下功能: 1。密码保护登录。用户将必须输入密码才能使用应用程序2。一旦登录,用户可以创建一些个人配置文件,其中配置文件可以存储一些安全信息,如密码。
经过一些研究,我被告知我应该使用KeyChain来保存安全信息(在我的例子中,登录密码和每个个人资料中的安全信息)。
似乎有一个很好的KeyChain包装器SSKeyChain可以用来实现我的目标(因为我不太熟悉c语言,所以使用苹果的钥匙链对我来说很难),我还找到了一些使用SSKeyChain iOS: How to store username/password within an app?的示例
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: easily检索到,那么它似乎不安全?因为其他应用程序也可以调用相同的方法来检索密钥链?(前提是他们知道服务名称和帐户)
似乎你必须“锁定”和“解锁”这个钥匙链。我已经检查了SSKeyChain文档http://docs.samsoff.es/SSKeychain/Classes/SSKeychain.html,但是找不到任何方法来“锁定”和“解锁”这样的密钥链。那么我该如何保护它呢?
发布于 2013-05-08 02:06:34
默认情况下,系统中的密钥链服务限制每个应用程序只能访问它自己的密钥链项目。锁定和解锁都是在Keychain Services的幕后处理的。
当您使用Xcode创建应用程序时,Xcode会向应用程序包添加一个应用程序标识符权利。密钥链服务使用此授权授予应用程序对其自己的密钥链项目的访问权限。
http://developer.apple.com/library/mac/#documentation/Security/Reference/keychainservices/Reference/reference.html
https://stackoverflow.com/questions/16424462
复制相似问题