看到人家彩色背景的验证码想测试一下:

创建html代码:

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;box-sizing: border-box;">
您的浏览器不支持 HTML5 canvas 标签。
</canvas>

创建相同js代码:

  function color(){
var c1 = parseInt(Math.random()*10);
var c2 = parseInt(Math.random()*10);
var c3 = parseInt(Math.random()*10);
var c4 = parseInt(Math.random()*10);
var c5 = parseInt(Math.random()*10);
var c6 = parseInt(Math.random()*10);
return "#" + c1+ c2+ c3+ c4+ c5+ c6;  //创建随机颜色
} function random(){
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle='#000';
ctx.fillRect(0,0,200,100); //这两句代码加上就不会出现重叠的情况? 不懂····
for(var i = 0;i< 30;i++){
ctx.beginPath();
ctx.arc(parseInt(Math.random()*220),parseInt(Math.random()*110),3,0,2*Math.PI);
ctx.fillStyle= color();
ctx.stroke();
ctx.fill(); //随便创建了一些五彩小圆点
}
// 创建渐变
var grd=ctx.createLinearGradient(0,0,200,0);
grd.addColorStop(0,"red");
grd.addColorStop(1,"white");
// 填充渐变
ctx.fillStyle=grd;
ctx.font="30px Arial";
var rans = rand(); //创建了验证码
ctx.fillText(rans,50,50); //实体
console.log(rans) //方便做判断或者其他
}
random();
myCanvas.onclick = function(e){ //点击事件 触发 可以自定义元素
e.preventDefault();
random()
}

1.先试用笨方法生成随机数字验证码:

创建数字:

function rand(){
var num1 = parseInt(Math.random()*10);
var num2 = parseInt(Math.random()*10);
var num3 = parseInt(Math.random()*10);
var num4 = parseInt(Math.random()*10);
return num1 + " " +num2 + " " + num3+ " " + num4; //如果验证码不是纯数字呢?
}

2.带有大小写字母 的随机验证码:

function rand(){
var str = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
var arr = str.split("");
var sM = arr[Math.floor(Math.random()*arr.length)];
var ss = "";  //定义一个变量存放 随机验证码的字符
for(var i = 0;i< 4;i++){ //可以自定义几位验证码
var sM = arr[Math.floor(Math.random()*arr.length)];
ss +=sM;   //重新定义了一下随机数字 防止重复
}
return ss;
}

实现效果如下:

canvas制作随机验证码的更多相关文章

  1. canvas实现随机验证码

    canvas实现随机验证码 知识点 canvas生成背景图和文字 设置字体样式和大小 String的fromCharCode(code码)生成大小写字母和数字 str.toLowerCase()转小写 ...

  2. python之使用PIL模块制作随机验证码

    制作随机验证码,需要如下知识点: 1.随机验证码的制作(这里用的是random模块随机产生字符) 2.图片的制作 3.随机直线干扰项 4.其他随机干扰项 代码如下: from PIL import I ...

  3. 用Canvas生成随机验证码(后端前端都可以)

    一 .使用前端生成验证码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  4. canvas绘制随机验证码

    效果图: 思路: 1, 绘制canvas画布,进行基础设置 2.绘制一个矩形 3.设置验证码的随机数 4.设置验证码随机数的随机颜色 5.绘制随机干扰线 6,绘制随机干扰点 经过以上六个步骤,验证码的 ...

  5. 微信小程序 canvas 生成随机验证码

    转载:https://blog.csdn.net/qq_16646819/article/details/81020245?utm_source=blogxgwz0 js // pages/bind/ ...

  6. js+canvas制作前端验证码

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. JAVA_SE基础——71.Random类制作随机验证码

    public class Demo5 { public static void main(String[] args) { char[] arr={'s','b','g','h','a','c'}; ...

  8. JavaScript随机验证码

    利用canvas制作一个随机验证码: 1.clearRect:context.clearRect(x,y,width,height);清空给定矩形内的指定像素 2.fillStyle:设置画笔的颜色 ...

  9. js用正则表达式验证用户和密码的安全性,生成随机验证码

    制作了一个表单,表单验证用户.密码.随机验证码 html页面

随机推荐

  1. json数据发送时浏览器提示“保存”解决

    数据以json形式发送的时候,部分浏览器不能直接解析,而是提示是否保存,nodejs的express应用中可以通过如下代码解决该问题: router.get('/', function (req, r ...

  2. 2017年12月17日 ASP.NET 12个表单元素&&简单控件/复合控件

    12个表单元素可以分为三大类 第一类:文本类 <input type = "text" /> //普通文本框 <input type = "passwo ...

  3. 工厂模式(Factory Pattern)

    一.工厂模式(Factory Pattern)的介绍 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式.在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使 ...

  4. JavaScript获取当前站点的域名和端口号

    获取域名(第一种方法): document.hostname 获取域名(第二种方法): document.domin 获取端口号: location.port 获取主机+端口号: location.h ...

  5. sharepint 2013 添加subsite

    在用服务器端对象模型往里面添加subsite的时候,照着书上的代码,结果,失败.报错 not suported language. bing了半天,说是语言未支持,又是修改系统区域,显示语言等,还是失 ...

  6. 学习笔记flexbox新布局

    FlexBox简称“弹性盒子”,除了用于实现弹性布局,还可以用来居中内容,改变标记中的源码顺序.首先说明IE9及以下浏览器不支持FlexBox. .flex{ display:flex; flex:1 ...

  7. Java Struts2 (三)

    一.国际化概念(了解) 1.什么是国际化 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 2.什么需要国际 ...

  8. wampserver 点击跳转localhost变0.0.0.0的解决方法!

    最近下载新版本wampserver发现点击项目不会自动添加localhost了,导致访问项目很麻烦. 修改如下 修改wamp根目录下的wampmanager.conf urlAddLocalhost ...

  9. EMSAscript

    1.javaScript 中const.var.let区别 const 定义的变量不可修改 而且必须初始化 =>解决闭包变量污染问题 var 定义的变量可以修改 如果不初始化则默认值为undef ...

  10. CentOS 7运维管理笔记(10)----MySQL源码安装

    MySQL可以支持多种平台,如Windows,UNIX,FreeBSD或其他Linux系统.本篇随笔记录在CentOS 7 上使用源码安装MySQL的过程. 1.下载源码 选择使用北理工的镜像文件: ...