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 相关文章推荐
jQuery:节点(插入,复制,替换,删除)操作
Mar 04 Javascript
js 实现日期灵活格式化的小例子
Jul 14 Javascript
JavaScript函数定义的常见注意事项小结
Sep 16 Javascript
JS中FRAME的操作问题实例分析
Oct 21 Javascript
jquery实现用户打分评分特效
May 28 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
Aug 28 Javascript
让div运动起来 js实现缓动效果
Jul 06 Javascript
jquery一键控制checkbox全选、反选或全不选
Oct 16 jQuery
vue初尝试--项目结构(推荐)
Jan 30 Javascript
JS实现字符串翻转的方法分析
Aug 31 Javascript
vue里的data要用return返回的原因浅析
May 28 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
Jul 26 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/04 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
JS脚本defer的作用示例介绍
2014/01/02 Javascript
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
2016/02/16 Javascript
JavaScript 数组中最大最小值
2016/06/05 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
浅谈小程序globalData的那些事儿
2019/11/01 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
python实现堆栈与队列的方法
2015/01/15 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
python sorted函数的小练习及解答
2019/09/18 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
python opencv角点检测连线功能的实现代码
2020/11/24 Python
selenium如何定位span元素的实现
2021/01/13 Python
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
PacSun官网:加州生活方式服装、鞋子和配饰
2018/03/10 全球购物
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
人力资源专业推荐信
2013/11/29 职场文书
初中三好学生事迹材料
2014/01/13 职场文书
公司联欢晚会主持词
2014/03/22 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
Redis可视化客户端小结
2021/06/10 Redis
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server