js生成的验证码的实现与技术分析
分享给大家一段js生成验证码并验证的代码
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JS生成验证码</title>
<styletype="text/css">
.code{
background-image:url(code.jpg);
font-family:Arial;
font-style:italic;
color:Red;
border:0;
padding:2px3px;
letter-spacing:3px;
font-weight:bolder;
}
.unchanged{
border:0;
}
</style>
<scriptlanguage="javascript"type="text/javascript">
varcode;//在全局定义验证码
functioncreateCode(){
code="";
varcodeLength=6;//验证码的长度
varcheckCode=document.getElementById("checkCode");
varselectChar=newArray(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(vari=0;i<codeLength;i++){
varcharIndex=Math.floor(Math.random()*36);
code+=selectChar[charIndex];
}
//alert(code);
if(checkCode){
checkCode.className="code";
checkCode.value=code;
}
}
functionvalidate(){
varinputCode=document.getElementById("input1").value;
if(inputCode.length<=0){
alert("请输入验证码!");
}elseif(inputCode!=code){
alert("验证码输入错误!");
createCode();//刷新验证码
}else{
alert("^-^OK");
}
}
</script>
</head>
<bodyonload="createCode()">
<formaction="#">
<inputtype="text"id="input1"/><inputtype="text"onclick="createCode()"readonly="readonly"id="checkCode"class="unchanged"style="width:80px"/><br/>
<inputid="Button1"onclick="validate();"type="button"value="确定"/>
</form>
</body>
</html>
众所周知,js是客户端的,那么把验证都做在客户端有意义吗?还是必须从服务器生成的验证码安全啊?前端生成的验证码安全吗?
验证码是动态的,但要由客户端识别,并返回正确数值才能正常验证。这是一个流程问题,如果js的,那就是在客户端处验证,基本等于没有一样!!!最好是服务器生成,客户端验证,服务器确认,正常浏览。这样一个流程就万无一失
所以,本文仅仅是技术探讨而已,千万别用在实际生产项目中