gpt4 book ai didi

PHP 7 OAuthProvider VS random_bytes token 生成

转载 作者:可可西里 更新时间:2023-11-01 01:12:29 26 4
gpt4 key购买 nike

我的目标只是生成一个临时 token ,它将在 URL 中用于用户识别,我应该使用 OAuthProvider::generateToken 吗?或 random_bytes

来自这些答案:

Generate a single use token in PHP: random_bytes or openssl_random_pseudo_bytes?

best practice to generate random token for forgot password

openssl_random_pseudo_bytes 相比,random_bytes 似乎是 PHP 7 最近更新的选项。与 OAuthProvider::generateToken 相比是否相同?

例子:

$rb_token = bin2hex(random_bytes($length));
$oa_token = bin2hex((new OAuthProvider())->generateToken($length, TRUE));
// TRUE = strong "/dev/random will be used for entropy"

最佳答案

我会选择 random_bytes(如果您使用 PHP < 7,则存在一个享有盛誉的 polyfill,random_compat)。/dev/urandom/dev/random 之间的差异对于您的情况可以忽略不计(可以找到更详细的解释 there)。

random_bytes 使用 getrandom 系统调用或 /dev/urandom, ( source code ), 而 OAuthProvider::generateToken() 如果生成的字符串太短( source codesource code of php_mt_rand ),没有强模式似乎会回退到一些不安全的实现。所以 random_bytes 在可用性(无不安全模式)和使用 getrandom 系统调用的系统上具有优势,因为它应该是首选方法(detailled explanation here)。

另一种得出结论的方法是查看一些广泛使用的库:FOSOAuthServer bundle,用于 Symfony 应用程序,uses random_bytes也是。
最后但并非最不重要的一点是,我相信一些 PHP 核心功能也会比扩展得到更多的审查和更好的支持。

关于PHP 7 OAuthProvider VS random_bytes token 生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49630194/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com