在PHP中,使用
random_bytes()。原因:您正在寻找一种获取密码提醒令牌的方法,并且,如果它是一次性登录凭据,则实际上您有一个数据需要保护(即-整个用户帐户)
因此,代码将如下所示:
//$length = 78 etc$token = bin2hex(random_bytes($length));
更新 : 此答案的 _先前版本
所指,
uniqid()如果存在安全问题,而不仅仅是唯一性,那是不正确的。
uniqid()本质上只是
microtime()一些编码。有一些简单的方法可以
microtime()对您的服务器进行准确的预测。攻击者可以发出密码重置请求,然后尝试几个可能的令牌。如果使用more_entropy,这也是可能的,因为附加熵同样很弱。



