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 相关文章推荐
弹出广告特效(一个IP只弹出一次)的代码
Jul 27 Javascript
简单方法判断JavaScript对象为null或者属性为空
Sep 26 Javascript
Javascript必知必会(四)js类型转换
Jun 08 Javascript
js显示动态时间的方法详解
Aug 20 Javascript
jQuery事件处理的特征(事件命名机制)
Aug 23 Javascript
jquery实现图片切换代码
Oct 13 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
Sep 06 jQuery
解决Linux无法正常安装与卸载Node.js的方法
Jan 19 Javascript
微信小程序云开发 生成带参小程序码流程
May 18 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
Oct 27 Javascript
vue-drawer-layout实现手势滑出菜单栏
Nov 19 Vue.js
jquery实现拖拽添加元素功能
Dec 01 jQuery
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和ACCESS写聊天室(六)
2006/10/09 PHP
网络资源
2006/10/09 PHP
php无限分类且支持输出树状图的详细介绍
2013/06/19 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
浅谈PHP中的
2016/04/23 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
laravel自定义分页效果
2017/07/23 PHP
JQuery for与each性能比较分析
2013/05/14 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
2015/04/14 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
Python饼状图的绘制实例
2019/01/15 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
婚礼新郎父母答谢词
2014/01/16 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
运动会口号16字
2014/06/07 职场文书
试用期解除劳动合同通知书
2015/04/16 职场文书
写给女朋友的保证书
2015/05/09 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏
idea下配置tomcat避坑详解
2022/04/12 Servers
Win11更新失败并提示0xc1900101
2022/04/19 数码科技