I know only two semi-similar estimates of password strength: zxcvbn (in CoffeeScript, compiled in JavaScript) and Passfault (in Java, it seems to be designed as webapp).
(Actually, this is a small lie: in the PhD test, I read some time ago, but I'm not sure where I put the link.)
All the other password checks that I looked at were erroneous, often deeply erroneous (for example, the haystack GRC involves very dumb brute-force efforts, even cracking open-source passwords is much more complicated) - the other day, the password strength meter of a large British loyalty card scheme told me that β1Aaβ was a βgoodβ password (βGOODβ is the highest rating).
(Another problem is that the required password strength depends on how it is used: a 48-bit password, such as "W1mCj6B1", is suitable for a Google account, but is incredibly weak, like a Windows / Mac password or password WPA phrase.)
I do not think that you are likely to find a decent one in Objective-C, given their rarity. If you end up writing one, I have a few tips:
- Write it in C (or possibly C ++). It will not cost much and will be much more portable; Objective-C pretty much connects you to OS X and iOS in the same way that .NET connects you to Windows (that is, theoretically you can port the runtime to other platforms, in practice it will be much less used outside of these platforms). To increase usage, you can add the Objective-C API.
- Decide what to do with non-ASCII characters (and non-English languages ββin general). There are two options:
- Deny them (people are used to it, right?)
- Map for ASCII for strength assessment, for example. by removing accents (see
NSWidthInsensitiveSearch and NSDiacriticInsensitiveSearch ) and jumping over some hoops to display Δ± / Δ° / Γ on i / I / ss. There is also kCFStringTransformToLatin , which promises transliterates most scripts into the Latin alphabet. This bit does not have to be in C, because it will be very dependent on Unicode libraries, although you can use ICU.
Finally, evaluating password strength is a complex problem. Guess the power of 2jmj7l5rSw0yVb_vlWAYkK_YBwk . Now ask Google.
tc.
source share