我需要生成一个放入 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/