`
varsoft
  • 浏览: 2442888 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

使用PHP生成1000个随机注册码

阅读更多

使用PHP生成1000个随机注册码

一般程序中都需要用到注册码,为了防止盗版,如果把生成的注册码保存到数据库里,并且通过软件在客户端访问服务器来匹配客户端输入的验证码是否正确,这是一种好的解决盗版的方案。

下面描述的代码就是使用PHP生成数字验证码,类似于:152-562-986-230 这样的,为了保证验证码不被猜中,我们采用比较复杂的12位数字,那么可能性就有:999999999999 这么多,那么重复的几率就很小。

我们下面的的程序就演示了身成1000个随机的注册码的例子。包括两个程序,一个程序用来生成从 100到999的序列数字并且保存到文件里,第二个程序是从文件中提取随机数对应行的数字生成验证码串,然后身成1000个随机串,最后保存在文件里。

程序一:生成序列数字

<?php
/**
* File: 生成4位的数字
* Author: heiyeluren
* Create: 2005-9-5 22:26
*/

/* 配置 */
$start_num = 100;
$end_num = 999;
$save_file = "./number.txt";

//生成从1000到9999的数字序列
for ($i=$start_num; $i<=$end_num; $i++)
{
$nums[] = $i;
}

//把上面生成的数字序列写入文件
$fp = fopen($save_file, "w") or die("Open $save_file failed");
fwrite($fp, implode("\r\n", $nums)) or die("Write $save_file failed");
unset($nums);
fclose($fp);

echo "Create $save_file succeed!";

?>

执行上面的代码,就会在当前程序目录生成一个 number.txt文件,里面保存了类似下面的数字:

100
101
102
103
104
105
106...

程序二:生成验证码


<?php
/**
* File: 生成CD-Key程序
* Author: heiyeluren
* Create: 2005-9-5 22:26
*/

/* 配置 */
$key_sum = 1500; //CD-Key最大数量,防止重复值
$key_total = 1000; //最终需要的CD-Key数量
$limiter = "-"; //CD-Key每组数字之间的连接符
$save_file = "./cd_key.txt"; //保存CD-Key文件
$num_file = "./number.txt"; //序列数字文件
$file = file($num_file); //打开序列数文件
$start_num = 0; //最小随机数
$end_num = count($file); //最大随机数

/* 生成随机数字串 */
$cdkey = array();
for ($i=0; $i<$key_sum; $i++)
{
$key_str = $file[rand_num($start_num, $end_num)].$limiter.
$file[rand_num($start_num, $end_num)].$limiter.
$file[rand_num($start_num, $end_num)].$limiter.
$file[rand_num($start_num, $end_num)];
$cdkey[] = str_replace("\r\n", "", $key_str);
}

/* 过滤重复串并且提取最终需要的CD-Key数量 */
$cdkey = array_unique($cdkey);
$key_result = array();
for ($i=0; $i<$key_total; $i++)
{
$key_result[] = $cdkey[$i];
}

/* 把最终的CD-Key写入文件 */
$fp = fopen($save_file, "w+") or die("Open $save_file failed");
fwrite($fp, implode("\r\n", $key_result)) or die("Write $save_file failed");
unset($cdkey);
unset($$key_result);
fclose($fp);

echo "Create $key_total key succeed!";

/* 随机函数 */
function rand_num($start, $end)
{
return mt_rand($start, $end);
}

?>

执行上面的程序就会生成cd_key.txt文件,里面包含了类似下面的验证码:

573-225-374-118
691-553-280-280
969-594-607-211
251-575-776-563
280-289-739-533...

这样,就完整的达到了我们的目的,你也可以把以上随机串保存到数据库里,方便调用。灵活设置以上变量,你能够生成16位、20位的验证码。如果你有兴趣,也可以写类似 XDF8F-ADE89-D0J5C-4RTFG之类的验证码,呵呵发挥下想象力。

分享到:
评论

相关推荐

    PHP生成随机密码方法汇总

    使用PHP开发应用程序,尤其是网站程序,常常需要生成随机密码,如用户注册生成随机密码,用户重置密码也需要生成一个随机的密码,接下来小编给大家介绍php生成随机密码五种方法,需要的朋友可以参考下

    php生成随机密码的几种方法

    使用PHP开发应用程序,尤其是网站程序,常常需要生成随机密码,如用户注册生成随机密码,用户重置密码也需要生成一个随机的密码。

    php生成随机密码的三种方法小结

    使用PHP开发应用程序,尤其是网站程序,常常需要生成随机密码,如用户注册生成随机密码,用户重置密码也需要生成一个随机的密码。随机密码也就是一串固定长度的字符串,这里我收集整理了几种生成随机字符串的方法,...

    cocoafob:一组用于Obj-C,Ruby(药店),PHP和FastSpring的注册码生成和验证帮助器

    概述CocoaFob是一组帮助代码段,用于在Objective-C应用程序中生成和验证注册码,并与Potion Store 和FastSpring 注册码生成集成在一起。 当前的实现使用DSA生成注册密钥,这大大减少了破解者为您的软件生成密钥生成...

    随机密码生成工具源代码

    随机密码生成工具是一个以html+js进行开发的密码随机生成器。 1、能够快速搭建随机密码工具 2、至少在注册账户不需要思考哪些才是安全密码 3、HTML页面,支持HTML的空间都可以 4、基于BootStrap框架,界面还是比较...

    emlog pro用户中心邀请码注册插件

    约请码在插件设置页面自动产生随机约请码,由数字和大小写字母组成,长度和数量可控制。 每个约请码只能注册一次,注册后失效,自动添加到已注册列表。 细致运用看设置页面 提示 本插件与emlog官网原来的用户注册...

    PHP生成随机字符串(3种方法)

    该算法主要用到了两个函数,mt_rand ( int $min , int $max )函数用于生成随机整数,其中 $min – $max 为 ASCII 码的范围,这里取 33 -126 ,可以根据需要调整范围,如ASCII码表中 97 – 122 位对应 a – z 的英文...

    PHP验证码生成原理和实现

    由于注册的时候常常会用到注册码来防止机器恶意注册,这里我发表一个产生png图片验证码的基本图像,很简陋但思想很清晰: 1、产生一张png的图片 2、为图片设置背景色 3、设置字体颜色和样式 4、产生4位数的随机的...

    PHP开发实战1200例源码

    实例072 图像验证码的生成 106 2.6 跳转语句 107 实例073 控制页面中表情图的输出 107 实例074 控制页面中数据的输出数量 108 实例075 动态改变页面中单元格的背景颜色 109 实例076 屏蔽偶数次的数据输出 110 实例...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例072 图像验证码的生成 106 2.6 跳转语句 107 实例073 控制页面中表情图的输出 107 实例074 控制页面中数据的输出数量 108 实例075 动态改变页面中单元格的背景颜色 109 实例076 屏蔽偶数次的数据输出 110 实例...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例072 图像验证码的生成 106 2.6 跳转语句 107 实例073 控制页面中表情图的输出 107 实例074 控制页面中数据的输出数量 108 实例075 动态改变页面中单元格的背景颜色 109 实例076 屏蔽偶数次的数据输出 110 实例...

    PHP+Ajax网站开发典型实例

    实例15 随机提取文件行 实例16 获得磁盘剩余空间 实例17 搜索文件或文件夹 实例18 文件下载 实例19 文件上传 实例20 网页计数器 实例21 超级链接计数 第3章 数据库、XML实例 实例22 mysql类库完成MySQL...

    PHP+Ajax网站开发典型实例-源代码

    实例15 随机提取文件行 实例16 获得磁盘剩余空间 实例17 搜索文件或文件夹 实例18 文件下载 实例19 文件上传 实例20 网页计数器 实例21 超级链接计数 第3章 数据库、XML实例 实例22 mysql类库完成MySQL数据库的添加...

    php网络开发完全手册

    目录 第1章 PHP的介绍及环境搭建 2 1.1 PHP简介 2 1.1.1 PHP语言的发展简史 2 1.1.2 PHP的发展现状与未来展望 3 1.1.3 PHP语言的优势 3 ...18.2 使用MySQL与PHP创建一个留言本 300 18.2.1 查看留言功能...

    如何使用PHP对网站验证码进行破解

    所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。学习验证码的破解/识别技术...

    php验证码的制作思路和实现方法

    由于注册的时候常常会用到注册码来防止机器恶意注册,这里我发表一个产生png图片验证码的基本图像,简单的思路分析: 1、产生一张png的图片 2、为图片设置背景色 3、设置字体颜色和样式 4、产生4位数的随机的验证码...

    php制作动态随机验证码

    验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and ... 这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可

    宏杰网络虚拟主机实时开通系统 v2.2.500 特别版

    为了庆祝本主机程序注册数量超过1000人而特别制作的一个免费无站点限制版本 此版本只支持IMAIL邮局 可以分类开通ASP,PHP,.NET空间,空间到期自动停止,可以强制广告(HTML下),可以单独设置和管理应用程序池 功能...

Global site tag (gtag.js) - Google Analytics