openssl_random_pseudo_bytes的替代方案—生成安全的唯一令牌


Alternative for openssl_random_pseudo_bytes - generate secured unique tokens

我的服务器主机的php版本是5.2.17。我使用随机令牌,并在函数中使用openssl_random_pseudo_bytes。

openssl_random_pseudo_bytes( $length);

尝试从Scott的回答中运行此代码。

它在我的本地主机上运行良好,php版本更高。除了升级我的服务器php版本。openssl_random_pseudo_bytes的另一个函数是什么?

Update:使用mt_rand, rand or uniqid,我如何生成安全的唯一令牌?到目前为止,我使用这行代码:

$token = md5(uniqid(rand(), true));

$thetoken = $token.$user_id;

谢谢你的帮助!

我正在使用5.6,但也一直在寻找方法来创建安全和唯一的令牌,因为我无法获得openssl_random_pseudo_bytes函数的工作。我已经在github上运行了paragonie的random_compat,它应该允许您使用random_bytes()和random_int()(两者仅适用于PHP7)。他们确实说它应该可以用于老年人。虽然他们确实建议更新到当前的稳定版本,但理论上应该使用x版本的PHP。https://github.com/paragonie/random_compat

这里是另一个堆栈溢出答案的链接,建议使用random_bytes()作为$token = bin2hex(random_bytes($length));

为忘记密码生成随机令牌的最佳实践

还有我发现的链接暗示了paragonie的random_compathttps://akrabat.com/random_bytes-in-php-5-6-and-5-5/https://paragonie.com/blog/2015/07/how-safely-generate-random-strings-and-integers-in-php

openssl_random_pseudo_bytes(10)的替代方法类似于php 5中的decbin(rand(0,1024))。X