js和php中几种生成验证码的方式

时间:2023-03-09 17:46:11
js和php中几种生成验证码的方式

之前做过取随机数和生成验证码的练习,都是通过取随机数作为数组下标,然后从数组中取值的方式(js):

 /*验证码*/
function sj_yzm(){
//存一个包括数字和字母的数组
var zongArr = ['a','b','c','d','e','f','g','H','I','G','K','L','M','N','0','1','2','3','4','5','6','7','8','9'];
//定义一个用来存放验证码的数组
var yzmArr = [];
//找到验证码显示框
var yzm = document.getElementsByClassName('yzm_sj')[0];
//生成四个随机数从zongArr挑出数字并为验证码数组赋值
for(var i = 0; i < 4; i++){
var sjs =parseInt(Math.random()*24);
yzmArr[i] = zongArr[sjs];
}
//将验证码数组遍历,拼接为字符串,输出
var each = '';
for(var j = 0; j < yzmArr.length; j++){
each += yzmArr[j];
}
yzm.innerHTML = each;
}

在php中还有其他几种方便好用的方法:

1.取当前时间戳,用md5加密,取值

 view plain copy

     function get_password( $length = 8 )
{
$str = substr(md5(time()), 0, $length);//md5加密,time()当前时间戳
return $str;
}

2.用mt_rand():

     function GetRandStr($length){
$str='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$len=strlen($str)-1;
$randstr='';
for($i=0;$i<$length;$i++){
$num=mt_rand(0,$len);
$randstr .= $str[$num];
}
return $randstr;
}
$number=GetRandStr(6);
echo $number;

3.打乱字符串取值:

 function getrandstr(){
$str='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
$randStr = str_shuffle($str);//打乱字符串
$rands= substr($randStr,0,6);//substr(string,start,length);返回字符串的一部分
return $rands;
}