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 相关文章推荐
location.href 在IE6中不跳转的解决方法与推荐使用代码
Jul 08 Javascript
js单词形式的运算符
May 06 Javascript
jquery常用方法及使用示例汇总
Nov 08 Javascript
javascript实现限制上传文件大小
Feb 06 Javascript
JavaScript动态创建div等元素实例讲解
Jan 06 Javascript
基于AngularJS实现iOS8自带的计算器
Sep 12 Javascript
js实现拖拽上传图片功能
Aug 01 Javascript
js判断传入时间和当前时间大小实例(超简单)
Jan 11 Javascript
vue中倒计时组件的实例代码
Jul 06 Javascript
简单了解微信小程序的目录结构
Jul 01 Javascript
jQuery实现轮播图效果
Nov 26 jQuery
AJAX学习笔记
May 18 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
php带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
PHP登录环节防止sql注入的方法浅析
2014/06/30 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
ThinkPHP分页实例
2014/10/15 PHP
php中删除数组的第一个元素和最后一个元素的函数
2015/03/07 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
PHP查找一列有序数组是否包含某值的方法
2020/02/07 PHP
mailto的使用技巧分享
2012/12/21 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
node.js中的fs.unlinkSync方法使用说明
2014/12/15 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
深入浅析Vue组件开发
2016/11/25 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
python实现在控制台输入密码不显示的方法
2015/07/02 Python
Python编写登陆接口的方法
2017/07/10 Python
使用python编写简单的小程序编译成exe跑在win10上
2018/01/15 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
基于python求两个列表的并集.交集.差集
2020/02/10 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
搞笑创意广告语
2014/03/17 职场文书
2015年清明节活动总结
2015/02/09 职场文书
教师见习总结范文
2015/06/23 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
vue3获取当前路由地址
2022/02/18 Vue.js