如何创建一个算法生成随机字符串? [英] How can I create an algorithm for generating random strings?
本文介绍了如何创建一个算法生成随机字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要生成随机字符串,如:
I want to generate random strings like:
sssder
tvmwww
66rfdd
123123
oo007oo
1234
2020
1111
rrrr
r8r8r
uiuiu
wewewe
fefefe
abced
xyz..
具体而言,我想一个字符串,那 5到8个字符的长度很容易记住。这可能吗?
推荐答案
您正在寻找的是一个助记串产生,这里的功能是:
What you're looking for is a mnemonic string generator, here is the function:
function Mnemonic($letters = 6)
{
$result = null;
$charset = array
(
0 => array('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'),
1 => array('a', 'e', 'i', 'o', 'u'),
);
for ($i = 0; $i < $letters; $i++)
{
$result .= $charset[$i % 2][array_rand($charset[$i % 2])];
}
return $result;
}
更新,允许在字符串末尾位数:
function Mnemonic($letters = 6, $digits = 2)
{
$result = null;
$charset = array
(
0 => array('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'),
1 => array('a', 'e', 'i', 'o', 'u'),
);
for ($i = 0; $i < $letters; $i++)
{
$result .= $charset[$i % 2][array_rand($charset[$i % 2])];
}
for ($i = 0; $i < $digits; $i++)
{
$result .= mt_rand(0, 9);
}
return $result;
}
这篇关于如何创建一个算法生成随机字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文