更新:
23.02.2020:该错误已在PHP 7.4.3 中修复。
23.12.2019:我发现了哪些密码受到影响。看我下面的回答。仍然非常感谢为什么拒绝长密码的答案。
免责声明:我已经尝试了大约 2 个小时,只是设置了不同的密码。我绝对相信下面的密码会导致问题。它适用于其他密码。我知道如何修复它:使用不同的密码。我想知道为什么它不起作用。因为这种不一致是不可接受的。
我能够在我的系统上重现该问题。
最近切换到 PHP 7.4 和 MySQL 8,默认情况下使用caching_sha2_password. 在验证它实际上受 PHP 支持后,我无法使用随机生成的密码使其工作,因此我mysql_native_password再次使用 PHP 7.3 。
现在,我设置了一个新服务器并且它工作正常,所以我试图找出问题所在,以便我可以caching_sha2_password在我的其他服务器上使用。
MySQL(通过 mysql shell 使用root)
ALTER USER 'test'@'localhost' IDENTIFIED WITH caching_sha2_password BY '';
FLUSH PRIVILEGES;
QUIT
Run Code Online (Sandbox Code Playgroud)
PHP
const DB_HOST = '127.0.0.1';
const DB_USERNAME = 'test';
const DB_PASSWORD = '';
const DB_NAME = 'test_db';
$mysqli = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
Run Code Online (Sandbox Code Playgroud)
测试(重现)
php db.php
Run Code Online (Sandbox Code Playgroud)
错误 …
这已经在SO上被多次询问了.但我还没有找到解决问题的方法.
我想为邀请系统创建一个简短的哈希(假设最多8个字符).我无法使用,base[X] encoding因为这太容易猜到了.我不能只修剪例如MD5哈希的额外字符,因为我认为碰撞问题会在某个时候出现.
这有解决方案吗?
我在我的文件中使用了一些javascripts.但是当我们查看源代码时,它会显示我们的javascript.有什么方法可以隐藏我们的JavaScript使用php在浏览器中显示.
我有以下代码,我从不同的教程示例中汇总了这些代码:
<?php
$stamp = date("Ymdhis");
$random_id_length = 6;
$rndid = crypt(uniqid(rand(),1));
$rndid = strip_tags(stripslashes($rndid));
$rndid = str_replace(".","",$rndid);
$rndid = strrev(str_replace("/","",$rndid));
$rndid = substr($rndid,0,$random_id_length);
$orderid = "$stamp-$rndid";
$orderid = str_replace(".", "", "$orderid");
echo($orderid);
?>
Run Code Online (Sandbox Code Playgroud)
FIDDLE:http://phpfiddle.org/main/code/27d-qfw
我希望这能创造一个数字; 当前时间,后跟一个6位数的随机数.
例如: 20130710045730-954762
但是目前随机数字也包括字母.
例如: 20130710045730-Z3sVN2
如何编辑代码才能包含数字?任何帮助表示赞赏.
我正在尝试创建一个带有数字和字母的随机字符串,我发现了这个函数并认为它会很好,但我不知道这是否是创建真正随机字符串的正确方法,或者是否有更简单的方法去做这个?以下是我所拥有的:
function randomGen() {
$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$length = strlen($chars);
$random;
for ($i = 0; $i < 8; $i++) {
$random = $chars[rand(0, $length - 1)];
}
return $random;
}
Run Code Online (Sandbox Code Playgroud) 我需要在我的脚本中生成大约5,000个随机数,但CPU速度很快,我在随机数中看到了趋势.
例如,在100次第一次迭代中,我得到80和70之间的值与rand(0,100);这可能是一个真正的不方便.
有没有办法解决这个问题,或者2012年的随机性是否已经无法实现?
我相信有可能从执行随机次数的函数生成随机数...但我无法找出一个.
我想生成一个随机字符串。我的开发环境是 xampp 和 php7.0.9。由于引用了一个 String 类,我得到了那个错误。
我正在申请一个在线考试申请.现在,一开始学生必须登录,他们才会得到问题.现在我想要的是当学生登录然后随机没有.必须在1到50之间生成.这将为他提取50个问题.登录成功后如何生成1到50之间的随机数.
这是我的HTML代码:
<body>
<h3>Login Form</h3>
<form id="form1" name="form1" method="post" action="login.php">
Student Username:
<label>
<input type="text" name="username" id="username" />
</label>
<p>Student Password:
<label>
<input type="text" name="password" id="password" />
</label>
</p>
<p>
<label>
<input type="submit" name="button" id="button" value="login" />
</label>
</p>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
现在当登录成功然后随机没有.必须生成1到50之间的值.