iOS密码强度检查器

时间:2013-01-27 02:54:53

标签: iphone ios objective-c security passwords

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

3 个答案:

答案 0 :(得分:6)

我只知道两个不太合适的密码强度 estimators zxcvbn(在CoffeeScript中,编译为JavaScript)和Passfault(在Java中,似乎是打算用的)作为一个webapp)。

(实际上,这是一个轻微的谎言;我在一段时间内读过博士论文中有一篇,但我不知道我把链接放在哪里。)

我所看到的任何其他密码“强度”检查器都有缺陷,通常深度缺陷(例如GRC的“haystacks”假设一个非常愚蠢的暴力;甚至是开源密码破解者更复杂了 - 前几天,英国大型忠诚卡计划的密码强度计告诉我,“1Aa”是一个“好”的密码(“GOOD”是最高评级)。

(另一个问题是所需的密码强度取决于它的使用方式:像“W1mCj6B1”这样的48位密码适用于Google帐户但令人难以置信弱的Windows / Mac登录密码或WPA密码。)

鉴于他们的稀有性,我认为你不太可能在Objective-C中找到一个像样的人。如果你最终写了一个,我有一些建议:

  • 用C(或C ++)写。这不会花费太多,而且更便携; Objective-C几乎将您与OS X和iOS绑定在一起,就像.NET将您绑定到Windows一样(理论上,您可以将运行时移植到其他平台;实际上,在这些平台之外使用它将少得多)。要增加使用率,可以添加Objective-C API。
  • 决定如何处理非ASCII字符(以及一般的非英语语言)。基本上有两种选择:
    • 禁止他们(人们习惯了,对吗?)
    • 映射到ASCII 以进行强度估算,例如通过剥离重音(参见NSWidthInsensitiveSearchNSDiacriticInsensitiveSearch)并跳过一些箍来将ı/İ/ß映射到i / I / ss。还有kCFStringTransformToLatin承诺将大多数脚本音译为拉丁字母。这个位不需要在C中,因为它很大程度上依赖于Unicode库,尽管你可以使用ICU。

最后,密码强度估算是一个难题。猜猜的力量 2jmj7l5rSw0yVb_vlWAYkK_YBwk。现在问谷歌。

答案 1 :(得分:2)

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

  

https://github.com/ruben-samsonyan/PasswordStrengthChecker/blob/master/passwordChecker.m

答案 2 :(得分:1)

Mattt Thompson为此创建了一个库(参见this answer)。这是我发现的最佳选择。

https://github.com/mattt/Navajo