网站首页 > 精选教程 正文
Java图形验证码,支持自定义图片、中文、算术等类型,可用于Java Web、JavaSE等项目。真香
效果展示:
项目集成:
package com.kyger;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
public class demo extends HttpServlet {
private static final long serialVersionUID = 1L;
public demo() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 编码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");;
response.setContentType("text/html; charset=utf-8");
// 后台处理
if (request.getMethod().equals("POST")){
String html, appId, appSecret;
// 设置 AppId 及 AppSecret,在应用管理中获取
appId = "L001";
appSecret = "W68oJi0iqT2C3BFRGirO1IaYCDvsYEED";
KgCaptchaSDK KgRequest = new KgCaptchaSDK(appId, appSecret);
// 前端验证成功后颁发的 token,有效期为两分钟
KgRequest.token = request.getParameter("kgCaptchaToken");
// System.out.print(KgRequest.token);
// 填写应用服务域名,在应用管理中获取
KgRequest.appCdn = "https://cdn9.kgcaptcha.com";
// 请求超时时间,秒
KgRequest.connectTimeout = 5;
// 用户登录或尝试帐号,当安全策略中的防控等级为3时必须填写,一般情况下可以忽略
// 可以填写用户输入的登录帐号(如:request.getParameter("username"),可拦截同一帐号多次尝试等行为
KgRequest.userId = "kgCaptchaDemo";
// request 对象,当安全策略中的防控等级为3时必须填写,一般情况下可以忽略
KgRequest.request = request;
// java 环境中无法提供 request 对象,请分别定义:clientIp|clientBrowser|domain 参数,即:
// KgRequest.clientIp = "127.0.0.1"; // 填写客户端IP
// KgRequest.clientBrowser = ""; // 客户端浏览器信息
// KgRequest.domain = "http://localhost"; // 你的授权域名或服务IP
// 发送验证请求
Map<String, String> requestResult = KgRequest.sendRequest();
if("0".toString().equals(requestResult.get("code"))) {
// 验签成功逻辑处理 ***
// 这里做验证通过后的数据处理
// 如登录/注册场景,这里通常查询数据库、校验密码、进行登录或注册等动作处理
// 如短信场景,这里可以开始向用户发送短信等动作处理
// ...
html = "<script>alert('验证通过');history.back();</script>";
} else {
// 验签失败逻辑处理
html = "<script>alert(\"" + requestResult.get("msg") + " - " + requestResult.get("code") + "\");history.back();</script>";
}
response.getWriter().append(html);
} else {
response.sendRedirect("index.html");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
设置界面:
SDK下载:https://github.com/KgCaptcha
效果演示:https://www.kgcaptcha.com/demo
猜你喜欢
- 2024-11-11 RuoYi若依系统的验证码如何替换为更美观的EasyCaptcha
- 2024-11-11 「Java」伪共享验证 什么是伪共享?伪共享会导致运算结果错误吗?
- 2024-11-11 Azure上的Java:云原生身份验证 azure java
- 2024-11-11 Java之HTTP请求权限验证 java之http请求权限验证怎么办
- 2024-11-11 java短信验证平台_JAVA实现利用第三方平台发送短信验证码
- 2024-11-11 OAuth2+JWT 实现权限验证 oauth2权限控制
- 2024-11-11 Java 的业务逻辑验证框架 之-fluent-validator
- 2024-11-11 java 生成4位短信验证码方法 java+生成4位短信验证码方法有哪些
- 2024-11-11 Java策略模式实现动态验证不同来源的数据
- 2024-11-11 Java安全编程:公钥加密和私钥签名的实践指南
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)