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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js生成十六进制随机数(验证码)相关的知识,希望对你有一定的参考价值。

使用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生成十六进制随机数(验证码)的主要内容,如果未能解决你的问题,请参考以下文章

PHP实现随机生成验证码功能

登录验证——————生成随机数

生成随机数验证图片

生成随机数验证图片的方法

使用canvas及js简单生成验证码方法

随机验证码的生成