为了生成一个32个字符的令牌来访问我们的 API,我们目前使用:
$token = md5(uniqid(mt_rand(), true));
我读到过,这种方法在加密上并不安全,因为它是基于系统时钟的,而且 openssl_random_pseudo_bytes
会是一个更好的解决方案,因为它更难预测。
如果是这种情况,等价的代码是什么样子的?
我猜是这样的,但我不知道这是否正确..。
$token = md5(openssl_random_pseudo_bytes(32));
还有,我应该传递给函数的长度是多少?