在.txt文件中生成一个由字母数字字符组成的随机字符串


Generate a random string of alpha numerical characters to a .txt file

我想创建一个由25个字母数字字符组成的随机字符串,当通过cron运行时,会将结果打印到key.txt文件中。

最好的方法是什么?非常感谢。

有很多教程,一个可能的解决方案(为了学习目的)是:

$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
// alternatively: implode('', array_merge(range(0,9),range('a', 'z'), range('A', 'Z')));
$length = 25;
$string = '';
for ($i = 0; $i < $length; $i++)
    $string .= $chars[rand(0, strlen($chars) - 1)];
// save it to a file
file_put_contents("key.txt", $string);

这是解决问题的简单函数。
传递长度变量以定义输出的长度。

function random_string( $length = 25 ) {
    $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $password = substr( str_shuffle( $chars ), 0, $length );
    return $password;
}

PS。它不能保证每个输出的唯一性。

我可以给你关于如何生成随机字符串的答案,就像圣经一样长,但你会阅读它们并对自己说:"好吧,这太糟糕了。"所以我会简明扼要。

// Generate random string
$randomString = uniqid();

这样,它就不必是25个字符长,只要生成的字符串始终是唯一的,并且是一个完美的密钥或文件名。

有关更多信息,请参阅uniqid()上的PHP手册。