1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
| const zxcvbn = require('zxcvbn');
zxcvbn('Tr0ub4dour&3');
// ^ Would return an object like below:
/*
{
"password": "Tr0ub4dour&3",
"guesses": 19058000,
"guesses_log10": 7.280077322611945,
"sequence": [
{
"pattern": "dictionary",
"i": 0,
"j": 9,
"token": "Tr0ub4dour",
"matched_word": "troubadour",
"rank": 11905,
"dictionary_name": "us_tv_and_film",
"reversed": false,
"l33t": true,
"sub": {
"0": "o",
"4": "a"
},
"sub_display": "0 -> o, 4 -> a",
"base_guesses": 11905,
"uppercase_variations": 2,
"l33t_variations": 4,
"guesses": 95240,
"guesses_log10": 4.978819386732842
},
{
"pattern": "bruteforce",
"token": "&3",
"i": 10,
"j": 11,
"guesses": 100,
"guesses_log10": 2
}
],
"calc_time": 2,
"crack_times_seconds": {
"online_throttling_100_per_hour": 686088000,
"online_no_throttling_10_per_second": 1905800,
"offline_slow_hashing_1e4_per_second": 1905.8,
"offline_fast_hashing_1e10_per_second": 0.0019058
},
"crack_times_display": {
"online_throttling_100_per_hour": "21 years",
"online_no_throttling_10_per_second": "22 days",
"offline_slow_hashing_1e4_per_second": "32 minutes",
"offline_fast_hashing_1e10_per_second": "less than a second"
},
"score": 2,
"feedback": {
"warning": "",
"suggestions": [
"Add another word or two. Uncommon words are better.",
"Capitalization doesn't help very much",
"Predictable substitutions like '@' instead of 'a' don't help very much"
]
}
}
*/
|