在php中通过读取/dev/urandom生成指定长度的随机数

开发微信小程序的需要,需要在后台生成16位的随机数,要求使用linux系统的随机数算法,读取/dev/urandom文件。
那么具体到php中,该如何操作?
另外,如何给得到的随机数设置一个有效期?

阅读 4.9k
3 个回答
$pr_bits = '';
// Unix/Linux platform?
$fp = @fopen('/dev/urandom','rb');
if ($fp !== FALSE) {
    $pr_bits .= @fread($fp, 16);
    @fclose($fp);
}

echo $pr_bits;

然后,随机数没有有效期,你需要将时间一起传递过去。

如果是整个系统共用的就:直接用把时间进行md5编码,取其中16位,存到一个文件中。有效期直接把文件生成时间和当前时间做比较。

如果是针对用户不同:就把用户id+时间进行md5编码,取其中16位,和时间一起存到session。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题