码迷,mamicode.com
首页 > Web开发 > 详细

js生成十六进制随机数(验证码)

时间:2018-03-31 18:16:53      阅读:333      评论:0      收藏:0      [点我收藏+]

标签:head   nbsp   代码   gpo   class   验证   mat   switch   width   

使用JavaScript也可以生成十六进制随机数,但是稍有些复杂。JavaScript中不能直接将十进制数转为十六进制,需要手动进行转换。首先使用Math.random()函数生成0~15之间的随机数,然后使用Math.ceil()函数将随机数取整,接下来就要逐次判断该值,如果该值大于9,那么将10~15的数一一对应转换为a、b…,一直到f。转换完成后,将值累加,最后传给valcode.php页。

使用JavaScript生成十六进制随机数的完整代码如下:

//生成随机数
function showval(){ num = ‘‘; for(i=0;i<4;i++){//循环输出四位验证码 tmp = Math.ceil((Math.random() * 15));//取出一位十六进制的整数 if(tmp > 9){//依次判断随机数 switch(tmp){ case(10)://如果随机数等于10,换为a num += ‘a‘; break; case(11): num += ‘b‘;//如果随机数等于11,换为b break; case(12): num += ‘c‘;//如果随机数等于12,换为c break; case(13): num += ‘d‘;//如果随机数等于13,换为d break; case(14): num += ‘e‘;//如果随机数等于14,换为e break; case(15): num += ‘f‘;//如果随机数等于15,换为f break; } }else{ num += tmp; } } $(‘chkid‘).src=‘valcode.php?num=‘+num;//将生成的随机数传给图像生成页 $(‘chknm‘).value = num;//将随机数的值保存到页面的隐藏域中 }

 附上图像生成页代码(实现的功能是验证码)

<?php
    header("content-type:image/png");    //设置页面编码        
    $num = $_GET[‘num‘];            //获取超级链接传递的随机数
    $imagewidth=60;                //定义画布的宽
    $imageheight=18;                //定义画布的高
    $numimage = imagecreate($imagewidth,$imageheight);            //创建画布
    imagecolorallocate($numimage,240,240,240);                //设置画布颜色分别是红,绿,黄
    for($i=0;$i<strlen($num);$i++){                            //循环读取随机数
        $x = mt_rand(1,8)+$imagewidth*$i/4;
        $y = mt_rand(1,$imageheight/4);
        $color=imagecolorallocate($numimage,mt_rand(0,150),mt_rand(0,150),mt_rand(0,150)); //定义图像的颜色
        imagestring($numimage,5,$x,$y,$num[$i],$color);            //将随机数写入到画布中
    }
    for($i=0;$i<200;$i++){            //for循环语句生成干扰线
          $randcolor=imagecolorallocate($numimage,rand(200,255),rand(200,255),rand(200,255));    //定义颜色
          imagesetpixel($numimage,rand()%70,rand()%20,$randcolor);         //生成干扰线
    }
    imagepng($numimage);            //生成图像
    imagedestroy($numimage);            //释放资源
?>

 

js生成十六进制随机数(验证码)

标签:head   nbsp   代码   gpo   class   验证   mat   switch   width   

原文地址:https://www.cnblogs.com/aten/p/8683127.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!