Iphone iOS密码强度检查器

Iphone iOS密码强度检查器,iphone,ios,objective-c,security,passwords,Iphone,Ios,Objective C,Security,Passwords,正在寻找有关objective-c的密码强度检查器的建议。我在谷歌上搜索了一下,没有找到任何点击率,在这里也是如此。我可以写一个,但我想先在这里检查一下——有人实现了吗?我只知道两个半体面的密码强度估算器:(在CoffeeScript中,编译为JavaScript)和(在Java中,似乎打算用作webapp) (事实上,这只是一个小小的谎言;我不久前读过一篇博士论文,其中有一篇,但我不确定我把链接放在哪里了。) 我看过的每一个其他密码“强度”检查器的任何细节都是有缺陷的,常常有严重的缺陷(例如G

正在寻找有关objective-c的密码强度检查器的建议。我在谷歌上搜索了一下,没有找到任何点击率,在这里也是如此。我可以写一个,但我想先在这里检查一下——有人实现了吗?

我只知道两个半体面的密码强度估算器:(在CoffeeScript中,编译为JavaScript)和(在Java中,似乎打算用作webapp)

(事实上,这只是一个小小的谎言;我不久前读过一篇博士论文,其中有一篇,但我不确定我把链接放在哪里了。)

我看过的每一个其他密码“强度”检查器的任何细节都是有缺陷的,常常有严重的缺陷(例如GRC的“haystacks”假设一个非常愚蠢的暴力;甚至开源密码破解程序也要复杂得多)——前几天,英国一个大型忠诚卡计划的密码强度表告诉我,“1Aa”是一个“好”密码密码(“良好”是最高评级)

(另一个问题是,所需的密码强度取决于它的使用方式:像“W1mCj6B1”这样的48位密码对于Google帐户来说很好,但作为Windows/Mac登录密码或WPA密码短语,它的强度非常弱。)

考虑到Objective-C的稀有性,我认为你不太可能在其中找到一个像样的。如果你最终写了一篇,我有一些建议:

  • 用C(或者C++)编写。这不会花费你太多,而且更便于携带;Objective-C将您与OS X和iOS的连接方式与.NET将您与Windows的连接方式几乎相同(即,理论上,您可以将运行时移植到其他平台;实际上,在这些平台之外,它将很少使用)。为了提高使用率,您可以添加Objective-CAPI
  • 决定如何处理非ASCII字符(以及一般的非英语语言)。基本上有两种选择:
    • 不允许他们(人们已经习惯了,对吗?)
    • 映射到ASCII以进行强度估计,例如,通过去除重音(请参见
      NSWidthInsensitiveSearch
      NSDiacriticInsensitiveSearch
      )和跳过一些环将ı/İ/ß映射到i/i/ss。还有
      kcfstringtransfermtolatin
      承诺将大多数脚本翻译成拉丁字母。此位不需要使用C,因为它将严重依赖于Unicode库,尽管您可以使用ICU
最后,密码强度估计是一个难题。猜猜
2jmj7l5rSw0yVb_vlWAYkK_YBwk
。现在问问谷歌。

我已经为此创建了一个方法。我知道这是一个老问题,但我认为现在它是实际的,所以这里是代码的url:


Mattt Thompson为此创建了一个库(请参阅)。这是我找到的最好的选择


我宁愿尽可能避免存储用户密码。同意-尽管在这种情况下这是不可避免的。我计划进行散列并遵循其他良好实践。我想为我的用户提供一个方便,因为我有一个密码表,可以在输入密码时主动检查他们的密码。你有没有考虑密码散列?没有,你有什么建议吗?如果你试图构建一个,我用C编写的简单密码强度检查器可能会有所帮助:惊人的信息-伟大的链接。谢谢我现在意识到密码估计器是多么深入和主观。我会多读一些关于这个主题的书,看看我是否能为我的项目找到一个令人满意的媒介——幸运的是,我没有处理高度敏感的用户信息!密码是“高度敏感的用户信息”-密码重用非常猖獗!在我看来,这是尽可能避免使用密码的最大原因:泄露的密码数据库很容易被用来攻击用户的电子邮件帐户,而且密码散列的保护程度是有限的(因为它们必须足够快,才能在繁忙的服务器上执行)。