【发布时间】:2011-01-13 14:58:56
【问题描述】:
我有一个 "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;
}
基本上,这会生成一个长度为$mnemonic 的字符串,其中每个奇数字符都是辅音,每个偶数字符都是元音。虽然我理解这会降低密码的复杂性,但它通常更容易记住。现在我想通过生成易于输入的字符串来改进它。
例如,虽然我是一个 *nix 新手,但我总是更喜欢基于 RHEL 的发行版而不是 Debian 发行版,主要原因是易于键入 yum 而不是易于键入 apt[-get],你自己试试吧。
我应该如何实现生成易于在 QWERTY 键盘上键入的字符串的逻辑?
【问题讨论】:
-
定义“更容易输入”。我通常发现我最容易输入的单词就是我能发音的单词 - 所以你的方法非常适合。
-
@Alix Axel,我实际上发现
apt比yum更容易打字,特别是因为你可以在打字时换手。 -
除了“begreen”和“yii”之外,由于双字母的原因,我输入的速度有点慢。我输入“apt”的速度也比“yum”略快,因为双手交替,而且有时只用两个手指输入“yum”
-
我必须补充一点,
apt对我来说也比yum更容易。希望有足够多的支持者,我们可以说服易于打字对于个人的打字风格是模棱两可的。有些人用一根手指戳键盘;有些人使用课堂上教的严格的打字技巧;有些人使用他们自己种植的方法。我不相信你能找到任何算法为所有人生成易于输入的密码。 -
这是一个非常有趣的问题...
标签: php algorithm string keyboard qwerty