首頁  >  問答  >  主體

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

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

阿神阿神2771 天前435

全部回覆(3)我來回復

  • PHP中文网

    PHP中文网2017-04-11 09:06:19

    $pr_bits = '';
    // Unix/Linux platform?
    $fp = @fopen('/dev/urandom','rb');
    if ($fp !== FALSE) {
        $pr_bits .= @fread($fp, 16);
        @fclose($fp);
    }
    
    echo $pr_bits;

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

    回覆
    0
  • 怪我咯

    怪我咯2017-04-11 09:06:19

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

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

    回覆
    0
  • 怪我咯

    怪我咯2017-04-11 09:06:19

    https://www.baidu.com/s?ie=ut...

    回覆
    0
  • 取消回覆