我正在尝试在PHP中创建一个随机字符串,我绝对没有输出:
<?php
function RandomString()
{
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randstring = '';
for ($i = 0; $i < 10; $i++) {
$randstring = $characters[rand(0, strlen($characters))];
}
return $randstring;
}
RandomString();
echo $randstring;
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
如何使用数字和字母生成随机的唯一字符串以用于验证链接?就像您在网站上创建一个帐户一样,它会向您发送一封带有链接的电子邮件,您必须单击该链接才能验证您的帐户...是的......其中一个.
如何使用PHP生成其中一个?
更新:记住了uniqid().它是一个PHP函数,它根据当前时间(以微秒为单位)生成唯一标识符.我想我会用那个.
PHP有自己的Rails真实性令牌版本吗?
<meta name="csrf-token" content="<%= form_authenticity_token %>" />
<meta name="csrf-param" content="authenticity_token" />
Run Code Online (Sandbox Code Playgroud)
如果没有,实现相同功能的最佳方法是什么?
我想在PHP中创建一个令牌,可以用作确认电子邮件,作为密码重置请求的一部分.
在网上搜索时,我在这里发现了一个帖子,我发现了以下内容:
$token = md5(uniqid(mt_rand(), true));
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我,与下面的内容相比,这是否应该首选,让我知道这里有什么不同之处?
$token = bin2hex(openssl_random_pseudo_bytes(16));
Run Code Online (Sandbox Code Playgroud)
要么
$token = bin2hex(mcrypt_create_iv(128, MCRYPT_DEV_RANDOM));
Run Code Online (Sandbox Code Playgroud)
另外,您能告诉我应该使用哪种数据类型将其存储在db中(使用MySQL)吗?
非常感谢,迈克