为了生成一个32个字符的令牌来访问我们的API,我们目前使用:
$token = md5(uniqid(mt_rand(), true));
我已经读到,这种方法不是基于密码的安全性,因为它基于系统时钟,这openssl_random_pseudo_bytes
将是一个更好的解决方案,因为它很难预测。
如果是这种情况,等效代码将是什么样?
我猜是这样的,但是我不知道这是否对...
$token = md5(openssl_random_pseudo_bytes(32));
我应该传递给函数的长度是多少?
这是正确的解决方案:
$token = bin2hex(openssl_random_pseudo_bytes(16));
# or in php7
$token = bin2hex(random_bytes(16));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句