iOS密码强度检查器

cap*_*kaw 8 security iphone passwords objective-c ios

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

tc.*_*tc. 6

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

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

我所看到的任何其他密码"强度"检查器都有缺陷,经常存在严重缺陷(例如GRC的"干草堆"假设一个非常愚蠢的暴力;甚至开源密码破解程序要复杂得多) - 前几天,一张大型英国忠诚卡计划的密码强度计告诉我,"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.现在问谷歌.