随机数的安全问题

PHP中常见的随机函数

1.rand()
常用的随机函数,默认生成0-getrandmax()之间的随机数,不过因为性能问题,已经被mt_rand()函数替代
相关函数:
rand(int Smin,int Smax),
srand(int Sseed),生成时间种子,同一个时间种子下随机生成的随机数值是相同的。
getrandmax()获取最大随机数,这里获取的随机数会随系统的不同而不同。如linux最大
2.mt_rand()
常用的随机函数,默认生成0-mt_getrandmax()之间的随机数,Mersenne Twister算法生成随机整数相关函数:
mt_srand(),生成种子,同一个种子下随机生成的随机数值是相同的
3.uniqid()
生成唯一ID的函数,精确到了微妙,较mt_rand精确。适用场景生成token和生成uuid
4.openssl_random_pseudo_bytes()
生成一个伪随机字节串string,字节数由length参数指定。
适用于生成token

一道CTF题

网络**演练平台—随机数
image.png