加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

用于QWERTY键盘的php – 助记密码生成算法

发布时间:2020-12-13 13:58:28 所属栏目:PHP教程 来源:网络整理
导读:我有一个“ 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_
我有一个“ 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],只需自己尝试一下.

如何实现逻辑生成易于在QWERTY键盘上键入的字符串?

你可能想看看 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仇恨,嘘!

我希望这有帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读