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);            //释放资源
?>

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

时间: 2024-08-03 13:57:13

js生成十六进制随机数(验证码)的相关文章

js生成四位随机数的简便方法

do out = Math.floor(Math.random()*10000); while( out < 1000 ) alert( out );

真的了解js生成随机数吗

由js生成一切随机数的基础都是Math.random(),这个方法比较特别,生成的随机数落在的区间是[0,1),进行一次操作的话,js只能生成一个类似于[n,m)这样,左闭右开的区间.所以当有一些特殊需求的时候,就势必要进行一些其它的操作,下面对各种需求进行简单的分析: 生成任意区间的整数 全闭区间[n,m] 这种的最常见,大家都知道的那一长串公式:Math.floor(Math.random()*(m-n+1))+n; 就是生成这个全闭区间的方法.说到这个公式很多人都知道,但真正想明白的人估计

js生成[n,m]的随机数

一.预备知识 Math.ceil();  //向上取整. Math.floor();  //向下取整. Math.round();  //四舍五入. Math.random();  //0.0 ~ 1.0 之间的一个伪随机数.[包含0不包含1] //比如0.8647578968666494 Math.ceil(Math.random()*10);      // 获取从1到10的随机整数 ,取0的概率极小. Math.round(Math.random());   //可均衡获取0到1的随机整数

js生成各种范围的随机数

摘要: 本文讲解如何使用js生成n到m间的随机数字,主要目的是为后期的js生成验证码做准备. Math.random()函数返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1) 生成n-m,包含n但不包含m的整数: 第一步算出 m-n的值,假设等于w 第二步Math.random()*w 第三步Math.random()*w+n 第四步parseInt(Math.random()*w+n, 10) 生成n-m,不包含n但包含m的整数:? 第一步算出 m-n的值,假设等于w 第二步Math

js 生成随机数

用 cocos js 测试可用: cc.log(Math.random()); 或: console.log(Math.random()); 本文讲解如何使用js生成n到m间的随机数字,主要目的是为后期的js生成验证码做准备. Math.random()函数返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1) 生成n-m,包含n但不包含m的整数: 第一步算出 m-n的值,假设等于w 第二步Math.random()*w 第三步Math.random()*w+n 第四步parseInt(M

js生成随机数

1. /*----------------------------------js生成随机四位数用户删除---------------------*/ function mathRand() { var num=""; for(var i=0;i<4;i++) { num+=Math.floor(Math.random()*10); } return num; } 2.Math.floor() 方法 floor() 方法可对一个数进行下舍入. 例如: <script typ

js生成某个范围内的随机数

根据random方法,Math.random()方法返回的是0到1的随机数(不包含0和1): ? 1 2 3 4 5 6 7 8 //生成k个m到n的随机数,返回数组     function Temp(m,n,k) {         var all = new Array();         for (var i = 0; i < k; i++) {             all[i] = Math.floor(Math.random()*(n-m) + m); //Math.floor

js生成随机数的方法小结

js生成随机数主要用到了内置的Math对象的random()方法.用法如:Math.random().它返回的是一个 0 ~ 1 之间的随机数.有了这么一个方法,那生成任意随机数就好理解了.比如实际中我们可能会有如下的需要: (1)生成一个 0 - 100 之间的随机整数,那么则可以: parseInt(100*Math.random()); 注意:因为Math.random()的返回值是包括0和1的,所以这里是有生成0和100的可能性的. (2)生成一个从 m - n 之间的随机整数,例如要生

js生成随机数的方法实例总结 [收藏]

js生成随机数的方法实例总结 js生成随机数主要用到了内置的Math对象的random()方法.用法如:Math.random().它返回的是一个 0 ~ 1 之间的随机数.有了这么一个方法,那生成任意随机数就好理解了.比如实际中我们可能会有如下的需要: (1)生成一个 0 - 100 之间的随机整数,那么则可以: parseInt(100*Math.random()); 注意:因为Math.random()的返回值是包括0和1的,所以这里是有生成0和100的可能性的. (2)生成一个从 m -