验证码

40 篇文章 0 订阅
6 篇文章 0 订阅

验证码

一、JS验证码

1.Js验证码概念:

是通过编写JavaScript代码获得的随机验证码,在客户端运行。

2.实现思路

数组当中存放所有候选组成验证码的字符,通过随机产生的下标来循环获得数组当中的字符,循环次数由自己制定,每循环一次就拼接一次,从而组成一个字符串的验证码。

3.案例:

< script>

Var code;

 

function createCode()

 

{

 

code = "";

 

var codeLength = 4;//验证码的长度

 

var checkCode = document.getElementById("checkCode");

 

var selectChar = new Array(2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z');//所有候选组成验证码的字符,当然也可以用中文的

 

for(var i=0;i<codeLength;i++)

 

{

 

var charIndex = Math.floor(Math.random()*10);

 

code +=selectChar[charIndex];

 

}

  
 

if(checkCode)

 

{

 

checkCode.className="code";

 

checkCode.innerHTML=code;

 

}

 

}

 

window.onload =createCode;

</script>

4.Js验证码的好处与坏处

好处:减少服务器的压力,企业中经常用Js验证码

坏处:容易看到源码,很容易被破解

二、JSP验证码

1.jsp验证码概念

是通过编写jsp代码获得的随机验证码,在服务端运行。

2.实现思路

简单的说就是调用validatecode.jsp页面

该页面包含“随机产生一个字符串”的方法,设置验证码的背景色和前景色的方法,随机产生获得的字符串保存在session中,然后创建一个内存的图片对象用来绘制图片,最后将图片从内存中读出来到硬盘中,即产生的验证码是一张带有图片的验证码。

3. jsp验证码的好处与坏处

好处:不能看到源码,很难被破解

坏处:如果有很多人访问就会增加服务器的压力,因为jsp验证码的代码是在服务端运行的。

4.注意事项

做验证码刷新效果:换一张
<Script>
function checkCode(){
var codekey=document.getElementById("codekey");
codekey.src = 'validatecode.jsp?time='+new Date().getTime();
//?time='+new Date().getTime()是拼接一个时间毫秒数,不拼则使用缓冲中的验证码图片,造成不切换的效果
}
</Script>

 

三、java验证码

纯java代码编写的验证码

调用一个封装好的类就能使用

四、Servlet验证码

导包ValidateCode.jar

1、将ValidateCode.jar放到WebRoot/lib目录下。

2、Servlet编写:

public class ServletDemo4 extends HttpServlet {

 

    public void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        //生成一个宽为110,高为25,4个数字,5条干扰线的验证码

        ValidateCode validateCode = new ValidateCode(110, 25, 4, 5);

        validateCode.write(response.getOutputStream());

    }

}

3、Html编写:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

<script type="text/javascript">

    function changeCode(){

        var img = document.getElementsByTagName("img")[0];

        img.src = "demo4?time="+new Date().getTime();

    }

</script>

</head>

<body>

    <form actioin="#">

        username:<input type="text" name="username"/><br/>

        password:<input type="text" name="password"/><br/>

        code:<input type="text" name="code"/>

        <img src="demo4" οnclick="changeCode()"><a href="javascript:changeCode()">看不清,换一张</a>

        <br/>

    </form>

</body>

</html>

如果大家想浏览我的下一篇文章,请留言

版权声明:此文章属于原创,不准随意转载:https://blog.csdn.net/LYQ2332826438

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

银色亡灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值