php - 生成加密安全 token

标签 php security openssl token

为了生成一个 32 字符的 token 来访问我们目前使用的 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));

关于php - 生成加密安全 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18830839/

相关文章:

php - Mysql按索引顺序查询

php - 在自定义菜单wordpress中添加样式图像

php - 如何使用 PHP 的 openssl_decrypt 函数分块解密大文件?

Docker TLS - 如何在本地机器上创建 key

php - 编辑此代码以避免降低性能的更有效方法是什么?

php - 每次加载页面时是否运行这些 mysql 查询中的每一个?

security - Fluid Framework 中是否可以有访问规则?

android - 如何在移动应用中实现高安全性?

django - 如何保护我的网络游戏免受作弊者的侵害?

c++ - TLS 握手成功后,服务器关闭并出现错误 SSL 例程 :SSL3_GET_RECORD:wrong version number