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中各种编码解码函数的区别和注意事项
Aug 19 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
Jan 24 Javascript
封装了一个支持匿名函数的Javascript事件监听器
Jun 05 Javascript
直接在JS里创建JSON数据然后遍历使用
Jul 25 Javascript
javascript使用数组的push方法完成快速排序
Sep 15 Javascript
js获取滚动距离的方法
May 30 Javascript
jQuery soColorPacker 网页拾色器
Jun 22 Javascript
jQuery实现邮箱下拉列表自动补全功能
Sep 08 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
Feb 07 Javascript
微信小程序 页面跳转如何实现传值
Apr 05 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
Apr 29 Javascript
javascript History对象原理解析
Feb 17 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中常用编辑器推荐
2007/01/02 PHP
php 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
PHP中怎样防止SQL注入分析
2014/10/23 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
web页面数据展示新想法(json)
2010/06/08 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
jQuery实现的手风琴侧边菜单效果
2017/03/29 jQuery
JavaScript编写棋盘覆盖代码详解
2017/08/28 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
2019/02/13 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
[04:10]2016国际邀请赛中国区预选赛第二日TOP10精彩集锦
2016/06/28 DOTA
python3实现网络爬虫之BeautifulSoup使用详解
2018/12/19 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
pyqt5中动画的使用详解
2020/04/01 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
Order by的几种用法
2013/06/16 面试题
STP的判定过程
2012/10/01 面试题
英语道歉信范文
2014/01/09 职场文书
给女儿的表扬信
2014/01/18 职场文书
教师对学生的寄语
2014/04/03 职场文书
学生吸烟检讨书
2014/09/14 职场文书
安全承诺书格式范本
2015/04/28 职场文书
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
2021/03/29 PHP