相关疑难解决方法(0)

在PHP中生成随机密钥的最佳方法是什么?

我正在寻找创建一个可重用的函数,它将生成一个随机密钥,其中包含所选长度的可打印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.我想要可能的最大数量的键.

注意:生成的密钥不一定必须是加密安全的.

php random

39
推荐指数
3
解决办法
6万
查看次数

单行PHP随机字符串生成器?

我正在寻找生成随机/唯一字符串的最短方法,为此我使用了以下两个:

$cClass = sha1(time());
Run Code Online (Sandbox Code Playgroud)

要么

$cClass = md5(time());
Run Code Online (Sandbox Code Playgroud)

但是,我需要字符串以字母字符开头,我正在查看base64编码,但最后会添加==,然后我需要摆脱它.

用一行代码实现这一目标的最佳方法是什么?


更新:

PRNDL提出了一个很好的建议,我最终使用它,但有点修改

echo substr(str_shuffle(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ),0, 1) . substr(str_shuffle(aBcEeFgHiJkLmNoPqRstUvWxYz0123456789),0, 31)
Run Code Online (Sandbox Code Playgroud)

将产生32个字符来模仿md5哈希,但它总是会产生第一个字母字母,就像这样;

解决方案1

然而,Uours真的改进了他的答案;

substr(str_shuffle("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 1).substr(md5(time()),1);
Run Code Online (Sandbox Code Playgroud)

更短,更甜

Anonymous2011的另一个建议非常棒,但由于某种原因,第一个角色总是要么M,N,Y,Z所以不适合我的目的但是会选择答案,顺便说一下有谁知道为什么它会总是产生那些特定的字母?

这是我修改版本的预览

echo  rtrim(base64_encode(md5(microtime())),"=");
Run Code Online (Sandbox Code Playgroud)

亚军

php random

38
推荐指数
4
解决办法
7万
查看次数

你如何生成密码?

你如何生成密码?

  • 随机字符?
  • 密码短语?
  • 高Ascii?

像这样的东西?

cat /dev/urandom | strings
Run Code Online (Sandbox Code Playgroud)

random passwords ascii passphrase character

32
推荐指数
7
解决办法
2万
查看次数

如何生成6位数的唯一数字?

如何生成6位数的唯一数字?我有适当的验证机制来检查重复的条目.

php random

29
推荐指数
8
解决办法
13万
查看次数

在PHP中生成随机代码?

我知道这可能看起来很傻,但我想生成一个8个characetrs的随机代码,只使用php的数字或字母.我需要这个为每个注册的用户生成一个密码,谢谢

php random

2
推荐指数
3
解决办法
4万
查看次数

在PHP中创建长度为5的唯一id

我知道uniqid()创建大量长度为 7 或更长的唯一 id 的方法,但我想要创建的是长度为 5 的唯一 id,不会发生冲突。

是否可以创建 220.000 个长度为 5 的唯一 id 并检查是否存在冲突?

php mysql

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

php ×5

random ×5

ascii ×1

character ×1

mysql ×1

passphrase ×1

passwords ×1