2011-08-22 67 views
7

我有什么似乎是一个简单的问题,但我找不到解决方案。我花了数小时试图找到一个示例,说明如何构建视图,允许用户输入密码,验证密码并将视图返回到指定的视图。我已经发现了很多关于零碎的资源,但是他们都对如何验证密码并将用户发送到指定的视图有些模糊。如何设计和实现IOS的密码验证?

这似乎是我的问题的最佳解决方案,它是:我有几个pdf,我需要在我的iPad应用程序的密码保护。

+0

什么问题了吗? isEqualToString的东西,还是你想解密/加密? – Seega

+0

密码的哈希或保存的副本(希望哈希)是否在寻找对用户密码进行身份验证?该密码是否可以在本地设置和存储? –

回答

4

在你的答案的期待我的comment--

如果你想将密码存储在本地,我将其存储在Keychain(散列或其他方式),以比较用户输入的密码。更多在Apple docs here

我建议下载Apple示例项目作为存储/检索钥匙串数据的示例。

9

问题1:提示用户名和密码

以模态方式呈现视图。如果用户名/密码组合正确,请关闭模态视图。或者,您可以使用带有文本框的提醒。

Issue2:存储的用户名/在为对方的回答提出了一个安全的方式

使用钥匙链的密码。钥匙链的用法与使用Carlbrown的PDKeychainBindingsController使用NSUserDefaults一样简单。您也可以通过以下链接找到它

https://github.com/carlbrown/PDKeychainBindingsController

编辑追加在评论请求信息:

假设你正在使用的登录提示,自定义视图控制器,你必须做这样的事情,当你想要提示输入密码。它可以在你的应用程序didFinishLaunchingWithOptions中。

LoginViewController *controller = [LoginViewController alloc]; 
      [self presentModalViewController:controller animated:YES]; 
         [controller release]; 

然后在你的LoginViewController中,你必须做这样的事情。

PDKeychainBindings *keyChain =[PDKeychainBindings sharedKeychainBindings]; 
      if ([[keyChain objectForKey:@"User Name"] isEqualToString:userName] && [[keyChain objectForKey:@"Password"] isEqualToString:passWord]) { 
       [self dismissModalViewControllerAnimated:YES]; 
      }else { 
       UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ERROR" message:@"Wrong User Name and/or Password\nEnter Login Information Again" 
                   delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; 
       [alert show]; 
       [alert release]; 
        } 

请注意,字符串userName和PassWord是从您的文本字段在登录视图控制器中捕获的。

+0

这正是我想要做的,但我还没有基于我所看到的知识库来实施,包括这里的链接和其他答复。有什么建议么?这个代码可以被构建和购买,然后合并到购买应用程序?或者我只是没有看到森林的树,也没有掌握行动的流程。 –

+0

你能通过电子邮件与我讨论这个吗? –

0

但是,如果你想出售的应用程序,请记住,苹果说

用户可以设置一个四位数的个人识别码(PIN),以 防止未经授权使用该设备,因此不需要对 用户进行身份验证,并且在iPhone OS中没有身份验证或 授权API。

这可以在Security Coding How-To's