php - openssl_random_pseudo_bytes() 应该使用什么长度?

标签 php cookies openssl

我需要生成一个放入 cookie 中的值,以便我可以唯一地标识用户,经过大量阅读后,似乎 openssl_random_pseudo_bytes() 可能符合要求。

但是,我不确定应该为函数使用什么length 参数才能使值唯一。即:我应该使用 10、25、50、100 等长度吗?

最佳答案

合理(强加密)security level今天是 128 位。这与使用 128 位密码(例如 AES-128)的对称加密获得的安全级别相同。假设冲突对您的应用程序来说是一个问题,因为您希望值是唯一的,我们需要考虑 birthday paradox ,因此您需要在 cookie 值中包含 256 位随机数据​​。 长度 为 32 个字节。安装birthday attack在 256 位时,大约需要 2256/2 = 2128 次尝试来查找冲突,这相当于 128 位安全级别。

关于php - openssl_random_pseudo_bytes() 应该使用什么长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14416238/

相关文章:

openssl - 使用来自 bash 的 openssl 备用配置文件?

ruby - RHEL 6.3 和所有 Ruby 安装程序上的 OpenSSL 问题

python - pyOpenSSL SSL3_WRITE_PENDING :bad write retry,返回self._sslobj.write(数据)错误:[Errno 10054]

Php 使用 mysql_fetch_array 排序

php - 我需要在系列结束时显示零价格的产品

cookies - Jersey:我可以在 ContainerResponseFilter 中添加 cookie 吗?

php - 设置 Cookie 来记住我 - PHP 与 Javascript

php - 疯狂的 crond 行为。不断制作失效的 bash 进程

javascript - 我无法将 vue 连接到我的 Laravel Blade View

node.js - 在 ExpressJs 中设置 Cookie 失败