【问题标题】:Password protect iPhone app密码保护 iPhone 应用程序
【发布时间】:2011-02-22 21:13:32
【问题描述】:

我正在启动一个新应用,我想知道如何要求输入密码才能打开它。

我正在考虑在应用程序委托实现文件的应用程序didFinishLaunchingWithOptions 方法中使用UIActionSheet,但我不确定如何去做。不过我会继续努力的。

找到this video,看起来很有帮助。

现在我的UIActionSheet 弹出显示“输入密码”,并试图弄清楚如何在操作表中添加键盘。

【问题讨论】:

  • 我认为可以帮助有同样问题的人的东西应该出现在社区 wiki 中。我错了吗?如果是这样,我深表歉意。
  • 你应该要求一个模组来删除这个并在没有社区维基的情况下提出另一个问题。
  • 这个答案也很有用stackoverflow.com/a/13563490/1359306

标签: ios xcode iphone-sdk-3.0 password-protection uiactionsheet


【解决方案1】:

我认为使用完整的UIViewController 实例而不是UIActionSheet 可能会更好。将键盘行为添加到操作表即使不是不可能也很困难。

如果您创建一个UIViewController 子类,您可以让您的应用程序委托将其呈现在-application:didFinishLaunchingWithOptions: 中。假设您在主界面上使用某种UIViewControllerUINaviagtionController,您可以在启动时使用UIViewController-presentModalViewController:animated: 以模态方式显示密码视图控制器。

获得密码视图控制器后,您需要添加UITextField 以输入密码。使文本字段变为firstResponder(通过在其上调用becomeFirstResponder),这将导致键盘显示。您可能还想在文本字段上设置keyboardAppearance 属性以控制键盘的显示方式,例如,如果您想限制为数字 PIN 与完整密码。还可能需要设置secureTextEntry 属性以防止显示实际密码。有关这两个选项,请参阅 UITextField 上的 UITextInputTraits 协议。

为了使应用程序安全,您将创建密码视图控制器,使其除了“提交”或“登录”类型的按钮之外没有任何按钮或导航选项。如果用户输入了正确的密码,您关闭模态视图控制器并让他们进入。如果他们不知道密码,他们唯一的选择是点击主页按钮退出您的应用程序,因为他们无法继续超越模态视图控制器。

【讨论】:

  • 谢谢!读起来很有意义。不过我还没有机会尝试一下。感谢您的帮助!
  • 实施UIKeyInput Protocol Reference 也是一个好主意,这样您就可以将底层数据存储中的密码归零。 NIST、DoD (STIG)、CIS(安全基准)等机构通常要求归零。
  • @surlac 几个选项。为了获得最大的安全性,请将其存储在应用程序的钥匙串中。为了合理的安全性,将其哈希值存储在应用程序的 NSUserDefaults 中,并将他们输入的哈希值与您存储的哈希值进行比较。那么就无法恢复他们的实际 PIN,但您仍然可以验证它。谷歌一下,你可以找到使用内置 CommonCrypto 库的 iOS 的 SHA1 哈希实现。
【解决方案2】:

UIAlertView 怎么样?但我不知道该应用程序是否被拒绝。一些人说是,其他人说不是。不知道过去有没有变化。

这里有一些链接:

http://junecloud.com/journal/code/displaying-a-password-or-text-entry-prompt-on-the-iphone.html

UITextField in UIAlertView on iPhone - how to make it responsive?

http://iphone-dev-tips.alterplay.com/2009/12/username-and-password-uitextfields-in.html

http://discussions.apple.com/thread.jspa?threadID=1674641&start=15&tstart=0

http://icodeblog.com/2009/11/09/iphone-coding-tutorial-inserting-a-uitextfield-in-a-uialertview/

大多数链接都这样做,它们都使用CGAffineTransformMakeTranslation。有人说iOS 4不需要这样做。有时会出现问题。没试过,因为不想被拒绝……

【讨论】:

  • 谢谢!我已经没有太多时间在这个应用程序上工作了,但是当我把它拿回来时,我一定会看看你的建议。谢谢!
【解决方案3】:

认为 repo http://github.com/lashad/PTPasscodeViewController 可能对访问此页面的人有用。

【讨论】:

    【解决方案4】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 2016-01-04
    • 1970-01-01
    相关资源
    最近更新 更多