生成加密安全令牌

为了生成用于访问我们的API的32个字符的令牌,我们目前使用:

$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));

以上是 生成加密安全令牌 的全部内容, 来源链接: utcz.com/qa/400349.html

回到顶部