Due to limited space, mobile keyboards have several levels of characters.
- the first level keyboard contains the alphabet and a few punctuation characters
- the second level keyboard contains numbers and frequently-used punctuation
- the third level keyboard contains infrequently-used punctuation
Both iOS and Android have three-level keyboards, though some of the characters on each level are different.
The idea I proposed to cxam was to provide an option to generate mobile-friendly passwords, which he executed perfectly.
Without selecting the Mobile Keyboard Friendly option, passed.pw might generate a 15-character high-entropy password like this: mk7fw6W((cx\w?5. While this is a good password, it’s difficult to use on a mobile device because the user has to switch keyboards 10 times:
- m = level 1 keyboard (one)
- k = level 1 keyboard
- 7 = level 2 keyboard (two)
- f = level 1 keyboard (three)
- w = level 1 keyboard
- 6 = level 2 keyboard (four)
- W = level 1 keyboard (five)
- ( = level 2 keyboard (six)
- ( = level 2 keyboard
- c = level 1 keyboard (seven)
- x = level 1 keyboard
- \ = level 2 keyboard (eight)
- w = level 1 keyboard (nine)
- ? = level 2 keyboard (ten)
- 5 = level 2 keyboard
Similar entropy could be achieved using the same characters, but made more friendly for a mobile device by grouping the characters to each keyboard like so: mkfwWcxw765((\?. This latter example is much more mobile friendly and takes fewer strokes to enter since the user does not have to switch back and forth among keyboards.
Sure, grouping randomly-generated characters makes the password less random and thus weakens its strength — but only marginally. The quantity of each character type is still random, as are the values within each type of character.
I welcome this option and thank cxam for considering this feature request and executing it so perfectly.