我正在寻找创建一个可重用的函数,它将生成一个随机密钥,其中包含所选长度的可打印ACSII字符(从2到1000+不等).我认为可打印的ASCII字符是33-126.它们的键不需要是完全唯一的,只要在完全相同的毫秒时生成就是唯一的(因此uniqid()不起作用).
我正在考虑组合chr()并mt_rand()可能有效.
这是要走的路,还是其他最好的方法?
编辑: uniqid()也不会工作,因为它没有长度参数,它只是PHP给你的东西.
我的想法:这就是我想出的:
function GenerateKey($length = 16) {
$key = '';
for($i = 0; $i < $length; $i ++) {
$key .= chr(mt_rand(33, 126));
}
return $key;
}
Run Code Online (Sandbox Code Playgroud)
这有什么问题吗?
另一个编辑:大多数其他问题涉及密码生成.我希望有一个更广泛的角色,我不关心1VS l.我想要可能的最大数量的键.
注意:生成的密钥不一定必须是加密安全的.