canvas制作随机验证码
看到人家彩色背景的验证码想测试一下:
创建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制作随机验证码的更多相关文章
- canvas实现随机验证码
canvas实现随机验证码 知识点 canvas生成背景图和文字 设置字体样式和大小 String的fromCharCode(code码)生成大小写字母和数字 str.toLowerCase()转小写 ...
- python之使用PIL模块制作随机验证码
制作随机验证码,需要如下知识点: 1.随机验证码的制作(这里用的是random模块随机产生字符) 2.图片的制作 3.随机直线干扰项 4.其他随机干扰项 代码如下: from PIL import I ...
- 用Canvas生成随机验证码(后端前端都可以)
一 .使用前端生成验证码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- canvas绘制随机验证码
效果图: 思路: 1, 绘制canvas画布,进行基础设置 2.绘制一个矩形 3.设置验证码的随机数 4.设置验证码随机数的随机颜色 5.绘制随机干扰线 6,绘制随机干扰点 经过以上六个步骤,验证码的 ...
- 微信小程序 canvas 生成随机验证码
转载:https://blog.csdn.net/qq_16646819/article/details/81020245?utm_source=blogxgwz0 js // pages/bind/ ...
- js+canvas制作前端验证码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JAVA_SE基础——71.Random类制作随机验证码
public class Demo5 { public static void main(String[] args) { char[] arr={'s','b','g','h','a','c'}; ...
- JavaScript随机验证码
利用canvas制作一个随机验证码: 1.clearRect:context.clearRect(x,y,width,height);清空给定矩形内的指定像素 2.fillStyle:设置画笔的颜色 ...
- js用正则表达式验证用户和密码的安全性,生成随机验证码
制作了一个表单,表单验证用户.密码.随机验证码 html页面
随机推荐
- List和Queue使用过程中的纪录
业务需求: 发送特定的请求,根据返回的信息执行特定的事件. 目前的做法:把我的请求放入一个容器内,然后待到某一条件,就从这个容器把请求发送出去,等客户返回信息时,查询容器中对应请求中特定的事件.开始的 ...
- nodejs图片裁剪、缩放、水印
关于nodejs下图片的裁剪.水印,网上的模块很多,主要如下: gm:https://github.com/aheckmann/gm node-canvas:https://github.com/Au ...
- 编写DBCP连接池
#配置数据库数据源package com.itang.utils; import java.io.InputStream; import java.sql.Connection; import jav ...
- Spring_Spring与IoC_第一个程序
一.IoC IoC是一种概念,是一种思想,指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理.控制反转是对对象控制权的转移,从程序代码本身反转到外部容器. 当前IoC比较 ...
- Grunt usemin前端自动化打包流程
前端优化是尽量减少http请求,所以我们需要尽量合并压缩文件,然后调用压缩后的文件,比如多个css文件压缩成一个,多个js文件合并压缩等,usemin能够自动在html中使用压缩后的文件,达到上面的目 ...
- 规范的web前端代码
web前端的代码规范主要针对的是HTML,CSS和javaScript代码. 前端代码规范在不同场合会有差异,但是规范的前端代码应该具有以下特征: 1.符合标准 所谓的标准是指W3C指定的web标准, ...
- [小北De编程手记] : Lesson 03 - Selenium For C# 之 元素定位
无论哪一种自动化测试的驱动框架(基于B/S,桌面应用,还是手机App).都应当具有一套优秀的元素定位技术.通常的自动化测试流程也可以简单的归结为是一个从被测试程序中识别或是定位元素以及执行操作和验证元 ...
- idea导入项目报错:文档中根元素前面的标记必须格式正确
今天从git上面导入项目之后,由于是上周刚刚提交过的,本地也没有什么修改,于是就从gitlab上面直接下载下来了.可是项目启动时候,报错了... 文档中根元素前面的标记必须格式正确 想想 原来是上次提 ...
- LeetCode-Maximal Rectangle [学以致用] ZZ
http://www.cnblogs.com/lichen782/p/leetcode_maximal_rectangle.html 题目: Given a 2D binary matrix fill ...
- .net正在终止线程异常
try{sting host = context.Request.UrlReferrer.Host;if ( 程序判断){ context.Response.Clear();context.Respo ...