寻找有关 objective-c 密码强度检查器的建议。我做了一些谷歌搜索,没有找到任何命中,也没有找到。我可以写一个,但我想我会先在这里检查 - 有人实现了吗?
最佳答案
我只知道两个一般的密码强度估计器:zxcvbn (在 CoffeeScript 中,编译为 JavaScript)和 Passfault (在 Java 中,似乎旨在用作网络应用程序)。
(实际上,这是一个轻微的谎言;我前一段时间读了一篇博士论文,但我不确定我把链接放在哪里。)
我详细查看过的所有其他密码“强度”检查器都存在缺陷,通常很深有缺陷(例如 GRC 的“haystacks”采用非常愚蠢的蛮力;甚至是开源密码破解程序更复杂)——前几天,英国一家大型成员(member)卡计划的密码强度计告诉我,“1Aa”是一个“好”密码(“好”是最高等级)。
(另一个问题是所需的密码强度取决于它的使用方式:像“W1mCj6B1”这样的 48 位密码对于 Google 帐户来说没问题,但难以置信对于 Windows/Mac登录密码或 WPA 密码。)
鉴于它们的稀有性,我认为您不太可能在 Objective-C 中找到像样的。如果你最终写了一个,我有一些建议:
- 用 C(或者 C++)编写。这不会花太多钱,而且更便携; Objective-C 几乎将您与 OS X 和 iOS 联系起来,就像 .NET 将您与 Windows 联系在一起一样(即理论上您可以将运行时移植到其他平台;实际上,它在这些平台之外的使用会少得多)。要增加使用率,您可以添加一个 Objective-C API。
- 决定如何处理非 ASCII 字符(以及一般的非英语语言)。基本上有两种选择:
- 不允许他们(人们已经习惯了,对吧?)
- 映射到 ASCII 用于强度估计,例如通过去除重音符号(参见
NSWidthInsensitiveSearch
和NSDiacriticInsensitiveSearch
)并跳过一些圈以将 ı/İ/ß 映射到 i/I/ss。还有kCFStringTransformToLatin
promise 将大多数脚本音译为拉丁字母表。这一点不需要在 C 中,因为它在很大程度上依赖于 Unicode 库,尽管您可以使用 ICU。
最后,密码强度估计是一个难题。猜猜实力
2jmj7l5rSw0yVb_vlWAYkK_YBwk
。现在问谷歌。
关于iphone - iOS 密码强度检查器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14543974/