Jquery 客户端生成验证码
验证码的作用:
1.有效防止这种问题对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上是用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,腾讯的QQ社区),我们利用比较简易的方式实现了这个功能。
- 2.防止批量注册
- 首先要准备jquery、jquery.idcode.css 和 jquery.idcode.js 三个脚本,然后再html文档中进行实例生成。
- jquery.idcode.css 样式:
- @charset "utf-8";
- /* track base Css */
- .ehong-idcode-val{
- position:relative;
- padding:1px 4px 1px 4px;
- top:0px;
- *top:-3px;
- letter-spacing:4px;
- display:inline;
- cursor:pointer;
- font-size:20px;
- font-family:"Courier New", Courier, monospace;
- text-decoration:none;
- font-weight:bold;
- }
- .ehong-idcode-val0{
- border:solid 1px #A4CDED;
- background-color:#ECFAFB;
- }
- .ehong-idcode-val1{
- border:solid 1px #A4CDED;
- background-color:#FCEFCF;
- }
- .ehong-idcode-val2{
- border:solid 1px #6C9;
- background-color:#D0F0DF;
- }
- .ehong-idcode-val3{
- border:solid 1px #6C9;
- background-color:#DCDDD8;
- }
- .ehong-idcode-val4{
- border:solid 1px #6C9;
- background-color:#F1DEFF;
- }
- .ehong-idcode-val5{
- border:solid 1px #6C9;
- background-color:#ACE1F1;
- }
- .ehong-code-val-tip{
- font-size:12px;
- color:#1098EC;
- top:0px;
- *top:-3px;
- position:relative;
- margin:0px 0px 0px 4px;
- cursor:pointer;
- }
jquery.idcode.css
- jquery.idcode.js 脚本:
- (function($){
- var settings = {
- e : 'idcode',
- codeType : { name : 'follow', len: 4},
- codeTip : 'refresh?',
- inputID : 'Txtidcode' //引用验证码输入框Id
- };
- var _set = {
- storeLable : 'codeval',
- store : '#ehong-code-input',
- codeval : '#ehong-code'
- }
- $.idcode = {
- getCode:function(option){
- _commSetting(option);
- return _storeData(_set.storeLable, null);
- },
- setCode:function(option){
- _commSetting(option);
- _setCodeStyle("#"+settings.e, settings.codeType.name, settings.codeType.len);
- },
- validateCode:function(option){
- _commSetting(option);
- var inputV;
- if(settings.inputID){
- inputV=$('#' + settings.inputID).val();
- }else{
- inputV=$(_set.store).val();
- }
- if(inputV == _storeData(_set.storeLable, null)){
- return true;
- }else{
- _setCodeStyle("#"+settings.e, settings.codeType.name, settings.codeType.len);
- return false;
- }
- }
- };
- function _commSetting(option){
- $.extend(settings, option);
- }
- function _storeData(dataLabel, data){
- var store = $(_set.codeval).get(0);
- if(data){
- $.data(store, dataLabel, data);
- }else{
- return $.data(store, dataLabel);
- }
- }
- function _setCodeStyle(eid, codeType, codeLength){
- var codeObj = _createCode(settings.codeType.name, settings.codeType.len);
- var randNum = Math.floor(Math.random()*6);
- var htmlCode=''
- if(!settings.inputID){
- htmlCode='<span><input id="ehong-code-input" type="text" maxlength="4" /></span>';
- }
- htmlCode+='<div id="ehong-code" class="ehong-idcode-val ehong-idcode-val';
- htmlCode+=String(randNum);
- htmlCode+='" href="#" onblur="return false" onfocus="return false" oncontextmenu="return false" onclick="$.idcode.setCode()">' + _setStyle(codeObj) + '</div>' + '<span id="ehong-code-tip-ck" class="ehong-code-val-tip" onclick="$.idcode.setCode()">'/*+ settings.codeTip*/ +'</span>';
- $(eid).html(htmlCode);
- _storeData(_set.storeLable, codeObj);
- }
- function _setStyle(codeObj){
- var fnCodeObj = new Array();
- var col = new Array('#BF0C43', '#E69A2A','#707F02','#18975F','#BC3087','#73C841','#780320','#90719B','#1F72D8','#D6A03C','#6B486E','#243F5F','#16BDB5');
- var charIndex;
- for(var i=0;i<codeObj.length;i++){
- charIndex = Math.floor(Math.random()*col.length);
- fnCodeObj.push('<font color="' + col[charIndex] + '">' + codeObj.charAt(i) + '</font>');
- }
- return fnCodeObj.join('');
- }
- function _createCode(codeType, codeLength){
- var codeObj;
- if(codeType=='follow'){
- codeObj = _createCodeFollow(codeLength);
- }else if(codeType=='calc'){
- codeObj = _createCodeCalc(codeLength);
- }else{
- codeObj="";
- }
- return codeObj;
- }
- function _createCodeCalc(codeLength){
- var code1, code2, codeResult;
- var selectChar = new Array('0','1','2','3','4','5','6','7','8','9');
- var charIndex;
- for(var i=0;i<codeLength;i++){
- charIndex = Math.floor(Math.random()*selectChar.length);
- code1 +=selectChar[charIndex];
- charIndex = Math.floor(Math.random()*selectChar.length);
- code2 +=selectChar[charIndex];
- }
- return [parseInt(code1), parseInt(code2) , parseInt(code1) + parseInt(code2)] ;
- }
- function _createCodeFollow(codeLength){
- var code = "";
- var selectChar = new Array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
- for(var i=0;i<codeLength;i++){
- var charIndex = Math.floor(Math.random()*selectChar.length);
- if(charIndex % 2 == 0){
- code+=selectChar[charIndex].toLowerCase();
- }else{
- code +=selectChar[charIndex];
- }
- }
- return code;
- }
- })(jQuery);
jquery.idcode.js
- jquery 的脚本从官网上下载即可。
- html代码部分:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>jQuery区分大小写验证码</title>
- <!--//引用css-->
- <link href="css/jquery.idcode.css" type="text/css" rel="stylesheet">
- </head>
- <body>
- <center><br><br>
- <input type="text" id ="Txtidcode" class ="txtVerification"><span id="idcode"></span>
- <input type="button" id="butn" value="提交"></center>
- <script src="js/jquery-1.12.3.min.js"></script>
- <!--//引用idcode插件-->
- <script src="js/jquery.idcode.js"></script>
- <script>
- $.idcode.setCode(); //加载生成验证码方法
- $("#butn").click(function(){
- var IsBy = $.idcode.validateCode() //调用返回值,返回值结果为true或者false
- if(IsBy){
- alert("验证码输入正确")
- }else {
- alert("请重新输入")
- }
- })
- </script>
- </body>
- </html>
Jquery 客户端生成验证码的更多相关文章
- 基于CANVAS与MD5的客户端生成验证码
好久没写东西,工作太忙了!不想服务端请求太多,搞了个这玩意儿,不过项目中并不会用上,还是使用服务端生成的机制(会安全多少呢?):我就想问个问题,除了图像识别来破解这样的简单验证码外,针对我这种例子,可 ...
- jQuery.qrcode.js客户端生成二维码,支持中文并且可以生成LOGO
描述: jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生成二维条码.此插件是能够独立使用的,体积也比较 ...
- servlet生成验证码
1.因为朋友们都说现在很少用java自带的图形用户接口,所以小白的我就没去看awt和swing组件,因为要抓紧时间学习后面的,完了出去找工作,等以后再回来了解awt和swing:所以制作验证码的代码是 ...
- nodejs 生成验证码
此方法需要nodejs 安装canvas 扩展 准备工作 以Linux为例 1.服务器gcc版本需4.8以上 2.安装所需扩展 yum install cairo cairo-devel cairom ...
- Django(十六)基于模板的登录案例:登录装饰器、csrf攻击方式及防护、ajax的Post 的csrf开启写法、生成验证码、加验证码登录、反向解析+传参
一.csrf攻击 1.1 csrf攻击(跨站请求伪造) [csrf攻击即]:通过第3方网站,伪造请求(前提条件是你已经登录正常网站,并保存了session或cookie登录信息且没有退出),第三方网站 ...
- java web学习总结(九) -------------------通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
- ASP.NET ashx实现无刷新页面生成验证码
现在大部分网站登陆时都会要求输入验证码,在网上也看了一些范例,现在总结一下如何实现无刷新页面生成验证码. 效果图: 实现方式: 前台: <div> <span>Identify ...
- JavaWeb---总结(九)通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl. ...
- javaweb学习总结(九)—— 通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
随机推荐
- MYSQL外键的使用以及优缺点
主键和索引是不可少的,不仅可以优化数据检索速度,开发人员还省不其它的工作, 矛盾焦点:数据库设计是否需要外键.这里有两个问题:一个是如何保证数据库数据的完整性和一致性:二是第一条对性能的影响. 正方观 ...
- jquery换肤
<script src="script/jquery-2.1.0.js"></script> <link href="style/ ...
- Socket-IOS
Socke Socket又称"套接字” 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 应用程序通常通过"套接字"向网络发出请 ...
- linux命令行模式下对FTP服务器进行文件上传下载
参考源:点击这里查看 1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码 ...
- requests从api中获取数据并存放到mysql中
python的requests库是一个非常强大的库,requests的安装方法十分简单,用: pip install requests 即可安装requests,安装成功后: import reque ...
- [html5] 学习笔记-改良的input元素种类
在html5中,大幅度增加与改良了input元素的种类,可以简单的使用这些元素来实现之前需要JS脚本来实现的功能. 1.url类型.email类型.date类型.time类型.datetime类型.d ...
- 内功心法 -- java.util.ArrayList<E> (3)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- json基础教程|理解Json
一. 在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式.这一期讨论一种有用的数据格式 JavaScript Object Notation(JSON),以及如何使用它更轻松地 ...
- 利用canvas制作乱跑的小球
canvas制作乱跑的小球 说明:将下面的代码放到html的body就可以,键盘控制上(W)下(S)左(A)右(D) <body> <canvas id="canvas&q ...
- MongoDB学习总结(二) —— 基本操作命令(增删改查)
上一篇介绍了MongoDB在Windows平台下的安装,这一篇介绍一下MongoDB的一些基本操作命令. 下面我们直奔主题,用简单的实例依次介绍一下. > 查看所有数据库 (show dbs) ...