验证码帮忙加个简单易懂的函数

图片说明放在string rund=“1234”的位置

你整个思路都错了。

你的想法很简单,添加一个函数,里面生成随机数,然后把这个随机数放在隐藏表单里。客户端输入和这个表单里的比较,一致就算验证。

但是这根本说明你对验证码是干嘛的没有理解。验证码的作用是防止机器代替人工操作。也就是让一个网页只能人操作,不能用机器去操作。而区分的关键在于,人可以轻松识别图像中扭曲的数字,而机器(相对来说)很困难。
因此机器不能得到正确的验证码,也就不能执行你的特定的逻辑。

而你直接把答案放在客户端的隐藏表单了,那么能阻止机器么?显然你整个都想错了。

正确的思路是,你服务器生成了随机数作为验证码,存入session,同时将图片发给用户,用户输入以后和你服务器上的比较,判断。全程客户端只能有图片验证码,不能接触到答案。

https://blog.csdn.net/weixian52034/article/details/52186207
这里有个非常简单的jsp验证码的例子

String verificationCode = (String)session.getAttribute("verificationCode"); 特别看这一行,验证码是存入session的,而不是客户端的表单、cookie等

 当然,你说我就是胡乱做一个程序蒙鬼,那也可以
String rund = "";
Random r = new Random();   
for (int i = 1; i <= 4; i++)
rund = rund + String.valueOf(r.nextInt(10));

我是来求给分的。
function coder(){
var v="<%=session.getAttribute("valinumber")%>";
if(v == $('code').val()){
alert(正确);
}else{
alert(错误);

}
}

                <input type="text" name="code" id="code" onblur="coder()"></<input>
                <img id="checkcode" src="checkcode.do"/>
                <input type="submit" value="登录"></<input>


                checkcode.do配置一个简单servlet,下面是servlet代码,目的生成验证码,转成图片输出

            response.setContentType("image/jpeg");
            BufferedImage image = new BufferedImage(60,20,BufferedImage.TYPE_INT_RGB);
            Graphics g = image.getGraphics();
            Random r = new Random();
            g.setColor(new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255)));    
            g.fillRect(0, 0, 60, 20);
            String number = String.valueOf(r.nextInt(99999));
            HttpSession session = request.getSession();
            session.setAttribute("valinumber", number);
            g.setColor(new Color(0,0,0));
            g.drawString(number, 5, 15);
            g.drawLine(r.nextInt(60), r.nextInt(20), r.nextInt(60), r.nextInt(20));
            g.drawLine(r.nextInt(60), r.nextInt(20), r.nextInt(60), r.nextInt(20));
            g.drawLine(r.nextInt(60), r.nextInt(20), r.nextInt(60), r.nextInt(20));
            OutputStream outs = response.getOutputStream();
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outs);
            encoder.encode(image);