iOS 12+中的强密码建议

本文是WWDC视频的简短版本。

在继续执行🔥🔥🔥🔥之前,请务必阅读我有关密码自动填充的文章

在iOS 12中,您可能已经看到iOS在注册应用程序时建议使用强密码。 这是WWDC 2018中引入的iOS中的新功能。我将解释它在iOS中的工作方式。

如何在iOS中启用强密码自动填充功能?

启用此功能很容易。 您所需要做的就是将textContentType属性设置为. newPassword . newPassword

  newPasswordTextField.contentType =。 newPassword 

默认情况下,生成的密码长度为20个字符。 它们包含大写字母数字连字符小写字母 。 这为您提供了一个具有超过71位熵的强密码。 苹果将​​其设计为功能强大,但与大多数服务兼容。 当然,您的应用程序可以定义自己的自定义密码规则。 如前所述,在大多数情况下,您不需要这样做,因为自动强密码的默认格式应该兼容。

如果我们不提供任何严格的密码规则,则会生成一个示例默认密码,如下所示。

  tobzi2-cyczyz-sesSyt 
dekdiq-nYtwa2-magjic
remniT-xyrte1-wevsev

它们包含大写字母数字连字符小写字母

但是,如果您的应用程序后端需要一组单独的规则,这些规则与默认的“自动强密码”格式不兼容,则可以定义自己的规则。 为此,请使用iOS 12中的新密码规则语言。Apple无法访问存储在Keychain中的凭据,因此也保留了用户的隐私。

如何自定义密码自动填充规则?

假设您需要一个密码,密码至少由八个字符组成,包括大写和小写字母,至少一个数字和最多两个连续的字符。 您将添加以下标记:

 let newPasswordTextField = UITextField() 
newPasswordTextField.passwordRules = UITextInputPasswordRules(descriptor: "required: upper; required: lower; required: digit; max-consecutive: 2; minlength: 8;")

有关自定义密码规则的更多方法,请参考本文

您可以使用密码规则验证工具创建,验证和下载示例密码,以进行测试等。