js生成的验证码的实现与技术分析


Posted in Javascript onSeptember 17, 2014

分享给大家一段js生成验证码并验证的代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JS生成验证码</title>
<style type="text/css">
.code {
background-image: url(code.jpg);
font-family: Arial;
font-style: italic;
color: Red;
border: 0;
padding: 2px 3px;
letter-spacing: 3px;
font-weight: bolder;
}
.unchanged {
border: 0;
}
</style>
<script language="javascript" type="text/javascript"> 
var code; //在全局 定义验证码  
function createCode() {
  code = "";
  var codeLength = 6;//验证码的长度  
  var checkCode = document.getElementById("checkCode");
  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() * 36);
    code += selectChar[charIndex];
  }
  //alert(code);
  if (checkCode) {
    checkCode.className = "code";
    checkCode.value = code;
  }
}
 
function validate() {
  var inputCode = document.getElementById("input1").value;
  if (inputCode.length <= 0) {
    alert("请输入验证码!");
  } else if (inputCode != code) {
    alert("验证码输入错误!");
  createCode();//刷新验证码  
  } else {
  alert("^-^ OK");
  }
}
</script>
</head>
<body onload="createCode()">
<form action="#">
  <input type="text" id="input1" /> <input type="text" onclick="createCode()" readonly="readonly" id="checkCode" class="unchanged" style="width: 80px" /><br />
  <input id="Button1" onclick="validate();" type="button" value="确定" />
</form>
</body>
</html>

众所周知,js是客户端的,那么把验证都做在客户端有意义吗?还是必须从服务器生成的验证码安全啊?前端生成的验证码安全吗?

验证码是动态的,但要由客户端识别,并返回正确数值才能正常验证。这是一个流程问题,如果js的,那就是在客户端处验证,基本等于没有一样!!!最好是服务器生成,客户端验证,服务器确认,正常浏览。这样一个流程就万无一失

所以,本文仅仅是技术探讨而已,千万别用在实际生产项目中

Javascript 相关文章推荐
用javascript自动显示最后更新时间
Mar 15 Javascript
JS限制Textarea文本域字符个数的具体实现
Aug 02 Javascript
深入理解javascript中return的作用
Dec 30 Javascript
jquery基础知识第一讲之认识jquery
Mar 17 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
Aug 17 Javascript
jQuery实现获取隐藏div高度的方法示例
Feb 09 Javascript
基于AngularJS实现表单验证功能
Jul 28 Javascript
微信小程序拍照和摄像功能实现方法示例
Feb 01 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
Feb 21 Javascript
详解vue中的父子传值双向绑定及数据更新问题
Jun 13 Javascript
Vue插件之滑动验证码
Sep 21 Javascript
Vue+element+cookie记住密码功能的简单实现方法
Sep 20 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
Sep 17 #Javascript
node.js中使用q.js实现api的promise化
Sep 17 #Javascript
Javascript判断文件是否存在(客户端/服务器端)
Sep 16 #Javascript
ie8下修改input的type属性报错的解决方法
Sep 16 #Javascript
JavaScript函数定义的常见注意事项小结
Sep 16 #Javascript
JavaScript的各种常见函数定义方法
Sep 16 #Javascript
JavaScript中合并数组的N种方法
Sep 16 #Javascript
You might like
PHP 和 MySQL 基础教程(四)
2006/10/09 PHP
遍历指定目录下的所有目录和文件的php代码
2011/11/27 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
让你的网站可编辑的实现js代码
2009/10/19 Javascript
jQuery 表单验证扩展(三)
2010/10/20 Javascript
2010年最佳jQuery插件整理
2010/12/06 Javascript
基于jQuery的倒计时插件代码
2011/05/07 Javascript
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
一分钟理解js闭包
2016/05/04 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
深入理解vue-loader如何使用
2017/06/06 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
2020/08/05 Javascript
Tornado高并发处理方法实例代码
2018/01/15 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
读书活动实施方案
2014/03/10 职场文书
厨房管理计划书
2014/04/27 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
博士生专家推荐信
2015/03/25 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android