设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 4433|回复: 5
收起左侧

[PHP/ASP/JSP] 【CRC系列算法隐藏功能】64位PHP7通过CRC32算法计算获取2^32(42亿)个不重复随机数

[复制链接]
发表于 2019-7-15 09:14:46 | 显示全部楼层 |阅读模式
本帖最后由 QAQ 于 2019-7-7 17:58 编辑


  1. <?php
  2. /*
  3. 本程序需要占用较大的物理内存(约256GB),请确认 php.ini 配置为内存不限量以及剩余内存足够,否则将出错。
  4. 具体内存与PHP版本有关,请使用 Windows 系统64位PHP7.3.1以上版本的 php.exe 执行,不支持32位。
  5. */
  6. function dec2bin($dec){
  7.         $bin = null;
  8.         for($i=3;$i >= 0;$i--){
  9.                 $bin.= chr($dec >>($i<<3));
  10.         }
  11.         return $bin;
  12. }
  13. $j = array();                //此变量用于检测随机数是否存在
  14. $l = dec2bin(rand(0,0xFFFFFFFF));        //随机数种子
  15. for($i=0;$i<=0xFFFFFFFF;$i++){                //获取2^32个不重复随机数
  16.         $k = crc32($l.dec2bin($i));        //CRC32算法计算出的随机数
  17.         
  18.         if(($i&0xFFFF) == 0){                //每65536个回显一个
  19.                 //ksort($j);
  20.                 echo "$i $k\r\n";
  21.         }
  22.         if(isset($j[$k])){                //随机数已存在
  23.                 echo "Err!";
  24.                 echo `cmd /c pause>nul`;
  25.                 exit;
  26.         }
  27.         $j[$k] = 1;
  28. }
  29.         unset($j);

  30.         echo "Ok!!";
  31.         echo `cmd /c pause>nul`;
  32.         exit;

  33. ?>

复制代码
发表于 2019-7-16 06:09:58 | 显示全部楼层
1心1亿 发表于 2019-7-15 22:30
256GB??? 这是超算用的吗???

6.0以下估计得1T
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-27 11:04 , Processed in 0.697040 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表