Skip to content

Commit f0ff851

Browse files
committed
add pointer to USENIX paper/presentation + ports cleanup.
1 parent 5719315 commit f0ff851

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

README.md

+9-11
Original file line numberDiff line numberDiff line change
@@ -18,30 +18,28 @@ Consider using zxcvbn as an algorithmic alternative to password composition poli
1818
* __More flexible__: zxcvbn allows many password styles to flourish so long as it detects sufficient complexity — passphrases are rated highly given enough uncommon words, keyboard patterns are ranked based on length and number of turns, and capitalization adds more complexity when it's unpredictaBle.
1919
* __More usable__: zxcvbn is designed to power simple, rule-free interfaces that give instant feedback. In addition to strength estimation, zxcvbn includes minimal, targeted verbal feedback that can help guide users towards less guessable passwords.
2020

21+
For further detail and motivation, please refer to the USENIX Security '16 [paper and presentation](https://www.usenix.org/conference/usenixsecurity16/technical-sessions/presentation/wheeler).
22+
2123
At Dropbox we use zxcvbn ([Release notes](https://github.com/dropbox/zxcvbn/releases)) on our web, desktop, iOS and Android clients. If JavaScript doesn't work for you, others have graciously ported the library to these languages:
2224

23-
* [`zxcvbn-c`](https://github.com/tsyrogit/zxcvbn-c) (C/C++)
24-
* [`zxcvbn-cpp`](https://github.com/rianhunter/zxcvbn-cpp) (C/C++/Python/JS)
25-
* [`nbvcxz`](https://github.com/GoSimpleLLC/nbvcxz) (Java)
26-
* [`zxcvbn4j`](https://github.com/nulab/zxcvbn4j) (Java)
27-
* [`zxcvbn-ios`](https://github.com/dropbox/zxcvbn-ios) (Objective-C)
2825
* [`zxcvbn-python`](https://github.com/dwolfhub/zxcvbn-python) (Python)
26+
* [`zxcvbn-cpp`](https://github.com/rianhunter/zxcvbn-cpp) (C/C++/Python/JS)
27+
* [`zxcvbn-c`](https://github.com/tsyrogit/zxcvbn-c) (C/C++)
28+
* [`zxcvbn-rs`](https://github.com/shssoichiro/zxcvbn-rs) (Rust)
2929
* [`zxcvbn-go`](https://github.com/nbutton23/zxcvbn-go) (Go)
30+
* [`zxcvbn4j`](https://github.com/nulab/zxcvbn4j) (Java)
31+
* [`nbvcxz`](https://github.com/GoSimpleLLC/nbvcxz) (Java)
3032
* [`zxcvbn-ruby`](https://github.com/envato/zxcvbn-ruby) (Ruby)
3133
* [`zxcvbn-js`](https://github.com/bitzesty/zxcvbn-js) (Ruby [via ExecJS])
32-
* [`zxcvbn-php`](https://github.com/bjeavons/zxcvbn-php) (PHP)
34+
* [`zxcvbn-ios`](https://github.com/dropbox/zxcvbn-ios) (Objective-C)
3335
* [`zxcvbn-cs`](https://github.com/mickford/zxcvbn-cs) (C#/.NET)
3436
* [`szxcvbn`](https://github.com/tekul/szxcvbn) (Scala)
37+
* [`zxcvbn-php`](https://github.com/bjeavons/zxcvbn-php) (PHP)
3538
* [`zxcvbn-api`](https://github.com/wcjr/zxcvbn-api) (REST)
36-
* [`zxcvbn-rs`](https://github.com/shssoichiro/zxcvbn-rs) (Rust)
3739

3840
Integrations with other frameworks:
3941
* [`angular-zxcvbn`](https://github.com/ghostbar/angular-zxcvbn) (AngularJS)
4042

41-
For more motivation, see:
42-
43-
http://tech.dropbox.com/?p=165
44-
4543
# Installation
4644

4745
zxcvbn detects and supports CommonJS (node, browserify) and AMD (RequireJS). In the absence of those, it adds a single function `zxcvbn()` to the global namespace.

0 commit comments

Comments
 (0)