# cta4j **Repository Path**: backuper/cta4j ## Basic Information - **Project Name**: cta4j - **Description**: Captcha for Java 一个简单的验证码框架 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2016-06-08 - **Last Updated**: 2024-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #CTA4J - 简单的Java验证码框架 很早之前的代码了, 忘记什么时候写的了 [TOC] ## 简简简介 **C**ap**t**ch**a** for **J**ava 是一个简单的 Java 验证码框架, 主要由以下三部分组成 | 包 | 功能说明 | |--------|--------| | org.ponly.cta4j.drawing | 验证码绘制: 背景, 前景, 字体, 颜色, 滤镜 | | org.ponly.cta4j.factory | 验证码工厂: 通过 drawing 绘制不同类型/效果的验证码 | | org.ponly.cta4j.service | 验证码服务: 使用 factory 生成验证码, 并提供完整的验证服务 | ## 使用样例 ### 简单生成验证码 ```java // 构建一个 Gmail风格 工厂并生成验证码 final GmailFactory factory = new GmailFactory(); // 构建一个数学计算验证码工厂 // final MathFactory factory = new MathFactory(); final Captcha captcha = factory.getCaptcha(); // 获取验证码图片 final BufferedImage image = captcha.getChallenge(); // 验证响应是否正确 if(captcha.validate("123456")) { // TODO 验证码响应正确 } else { // TODO 验证码响应不正确 } ``` ### 使用验证码服务生成并验证验证码 CaptchaFactory 只是简单实现了验证码的生成, 对于验证过程中验证码的存储, 有效期等需要自行处理. cta4j 默认提供了 验证服务的实现. ```java // 构建使用 ehcache 进行存储的 captcha store, 也可以选用 redis 或自行实现 CaptchaStore 接口 final net.sf.ehcache.CacheManager cacheManager = net.sf.ehcache.CacheManager.getInstance(); final CaptchaStore captchaStore = new EhcacheStore(cacheManager); final CaptchaFactory captchaFactory = new DefaultFactory(); final CaptchaService captchaService = new DefaultManageableCaptchaService(captchaStore, captchaFactory); final String captchaToken = ...(自行生成 token 即可); // 为 token 生成验证码 BufferedImage image = captchaService.getChallengeForId(captchaToken); // 验证 token 对应相应是否正确 captchaService.validateResponseForId(captchaToken, "123"); ``` ### 通过滤镜(Filter)自定义验证码样式(待完善) ### 通过 ProxiedCaptchaFactory 自定义样式(待完善)