关于php:openssl_random_pseudo_bytes的替代方案 – 生成安全的唯一令牌

Alternative for openssl_random_pseudo_bytes - generate secured unique tokens

我的服务器主机有5.2.17版本的PHP。我使用的是随机标记,并在函数中使用了openssl_random_pseudo_字节。

1
openssl_random_pseudo_bytes( $length);

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

它在本地主机上运行良好,具有更高的PHP版本。除了升级我的服务器PHP版本。openssl_random_pseudo_bytes的替代函数是什么?

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

埃多克斯1〔2〕

埃多克斯1〔3〕

谢谢你的帮助!


我正在使用5.6,但也一直在寻找创建安全和唯一令牌的方法,因为我无法让openssl_random_pseudo_bytes函数工作。我在Github遇到了Paragonie的Random_Compat,它允许您使用Random_Bytes()和Random_Int()(两者都只在php7中可用)。他们确实说,理论上,它应该能够与旧的5.x版本的PHP一起使用,尽管他们确实建议更新到当前稳定的PHP版本。https://github.com/paragonie/random_兼容

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

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

还有我发现的暗示巴拉戈尼的随机同胞的联系。https://akrabat.com/random_bytes-in-php-5-6-和-5-5/https://paragonie.com/blog/2015/07/how-safety-generate-random-strings-and-integers-in-php


在php 5.x中,openssl_random_pseudo_bytes(10)的替代方法类似于此decbin(rand(0,1024))