图片验证码-captcha

Java(CAPTCHA) 随机验证码生成:

入门:(SpringMVC)

第一步:

要手动将BotDetect Captcha库添加到类路径,请将以下三个jar文件从BotDetect Java下载包复制到应用程序的WEB-INF/lib文件夹:

  • botdetect-4.0.beta3.6.jar
  • botdetect-servlet-4.0.beta3.6.jar
  • botdetect-jsp20-4.0.beta3.6.jar

要在多个应用程序之间共享BotDetect Captcha,应将上面的这些BotDetect jar文件复制到Web容器或应用程序服务器域的“lib”目录中。

或者使用Maven(推荐)

在pom.xml中添加依赖项:

<dependency>

<groupId>com.captcha</groupId>

<artifactId>botdetect-jsp20</artfactId>

<version>选择自己要的版本</version>

</dependency>

第二步:

配置web.xml文件

<servlet>

<servlet-name>BotDetect Captcha(可自定义)</servlet-name>

<servlet-class>com.captcha.botdetect..web.servlet.CaptchaServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>BotDetect Captcha(可自定义)</servlet-name>

<url-partten>/botdetectcaptcha(可自定义)<url-parttten/>

</servlet-mapping>

第三步:创建HTML文件并引入相关的元素(这里省略,图片代替,来自官网)

引入标签库:<%@ taglib prefix="botDetect"  url="https://captcha.com/java/jsp"%>

model

public class BasicExample {
    
    private String captchaCode, captchaCorrect, captchaIncorrect;

    public String getCaptchaCode() {
        return captchaCode;
    }

    public void setCaptchaCode(String captchaCode) {
        this.captchaCode = captchaCode;
    }

    public String getCaptchaCorrect() {
        return captchaCorrect;
    }

    public void setCaptchaCorrect(String captchaCorrect) {
        this.captchaCorrect = captchaCorrect;
    }

    public String getCaptchaIncorrect() {
        return captchaIncorrect;
    }

    public void setCaptchaIncorrect(String captchaIncorrect) {
        this.captchaIncorrect = captchaIncorrect;
    }

}

controller

@Controller
public class BasicController {
    
    @RequestMapping(value = "/basic", method = RequestMethod.GET)
    public ModelAndView showForm() {
        return new ModelAndView("basic");
    }
    
    @RequestMapping(value = "/validate", method = RequestMethod.POST)
    public ModelAndView onSubmit(HttpServletRequest request, 
                                @Valid @ModelAttribute("basicExample")BasicExample basicExample) 
    {
        // validate the Captcha to check we're not dealing with a bot
        SimpleCaptcha captcha = SimpleCaptcha.load(request, "basicExample");
        boolean isHuman = captcha.validate(basicExample.getCaptchaCode());
        
        if (isHuman) {
          basicExample.setCaptchaCorrect("Correct code");
          basicExample.setCaptchaIncorrect("");
        } else {
          basicExample.setCaptchaCorrect("");
          basicExample.setCaptchaIncorrect("Incorrect code");
        }

        basicExample.setCaptchaCode("");
        
        return new ModelAndView("basic", "basicExample", basicExample);
    }
        
}

参考博客:

https://blog.csdn.net/joyce_lcy/article/details/81980683

https://www.jianshu.com/p/f3bb160d8d61

案例下载: https://download.csdn.net/download/love_moon821/11271554

更多语言参考: https://captcha.org/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Koa2 中使用 svg-captcha 生成验证码可以按照以下步骤进行: 1. 安装 svg-captcha 和 koa-svgrouter 模块 ```bash npm install svg-captcha koa-svgrouter --save ``` 2. 在 Koa2 应用中引入相关模块 ```javascript const Koa = require('koa'); const Router = require('koa-router'); const svgrouter = require('koa-svgrouter'); const svgCaptcha = require('svg-captcha'); const app = new Koa(); const router = new Router(); ``` 3. 设置路由,生成验证码 ```javascript router.get('/captcha', async (ctx, next) => { const captcha = svgCaptcha.create(); ctx.session.captcha = captcha.text; ctx.type = 'svg'; ctx.body = captcha.data; }); ``` 4. 添加 SVG 路由 ```javascript app.use(svgrouter('/captcha/:id', { useSession: true, sessionName: 'captcha' })); ``` 5. 在需要使用验证码的地方,可以通过如下代码获取验证码图片 ```html <img src="/captcha/1" /> ``` 注意,上述代码中的数字 1 是路由参数,可以自行设置。 6. 验证验证码 在需要验证验证码的地方,可以通过如下代码获取用户输入的验证码,并与之前生成的验证码进行比较。 ```javascript const userCaptcha = ctx.request.body.captcha; if (userCaptcha.toLowerCase() === ctx.session.captcha.toLowerCase()) { // 验证码输入正确 } else { // 验证码输入错误 } ``` 以上就是使用 svg-captcha 生成验证码的基本步骤。需要注意的是,在生成验证码和验证验证码时都需要使用到 Koa2 的 session 功能,因此需要在应用中添加相关中间件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值