我有一个“
mnemonic”密码生成功能,如下所示:
function Mnemonic($mnemonic) { $result = null; $charset = array(str_split('aeIoU',1),str_split('bcdfghjklmnpqrstvwxyz',1)); for ($i = 1; $i <= $mnemonic; $i++) { $result .= $charset[$i % 2][array_rand($charset[$i % 2])]; } return $result; }
基本上,这将生成一个$助记符长度的字符串,其中每个奇数字符都是辅音,每个偶数字符都是元音.虽然我明白这会降低密码的复杂度,但通常会更容易记住.现在我想通过生成易于键入的字符串来改进它.
例如,当一个* nix新手,我总是喜欢基于Debian的基于RHEL的发行版本,主要的原因是可以轻松地输入yum,而不是轻松地输入apt [-get],只需自己尝试一下.
你可能想看看
principles used in the Dvorak keyboard,
在密码生成算法中应用的原则是:
>应该用改变手写字母.
>使用简单的键入组合.看看Dvorak的布局,看看常见的有向图和信件的位置.
>仅使用底行的一个字母,否则.让它随机!
>您可以将比例2比1(右手键入的2个字母由左手键入1个字母).
>由于比例是2比1,你将有两个连续的字母由同一只手打字,所以你必须确保他们是从键盘的外部键入到里面.这个原则被应用于有向图.
我知道你说这是一个QWERTY键盘,但在QWERTY键盘上使用这些原则可以给你一些非常好的结果,如:
ktrd,ogkdo (“typewriter” in dvorak)
kjg;g;akd;k (using only the home row)
pjedoildupsk (just a random password following the principles)
所有Dvorak仇恨,嘘!
我希望这有帮助.