我需要生成一个将放入 cookie 中的值,以便我可以唯一地识别用户,并且经过大量阅读后,它似乎openssl_random_pseudo_bytes()
可能符合要求。
但是,我不确定length
应该为函数使用什么参数才能使值唯一。即:我应该使用 10、25、50、100 等的长度吗?
我认为有一个更好的功能可以满足您的需求:uniqid()
,它生成一个(尽可能)随机值,基于microtime()
. 当然,这不是加密安全的,但您没有指定它必须是。
用法:uniqid()
返回一个 13 个字符长的字符串,uniqid("", TRUE)
23 个字符,uniqid($var)
产生strlen($var)+13
字符。
来自 uniqid 的 PHP 文档:
此函数不会生成加密安全令牌,事实上,在没有传递任何其他参数的情况下,返回值与 microtime() 几乎没有什么不同。如果您需要生成加密安全令牌,请使用 openssl_random_pseudo_bytes()。