为了生成一个 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/