如何创建一个算法生成随机字符串? [英] How can I create an algorithm for generating random strings?

查看:410
本文介绍了如何创建一个算法生成随机字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要生成随机字符串,如:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆