【验证码】使用Java生成验证码,随机生成的长度不少于4位的字符,应包含字母与数字,并在显示时对其进行扭曲处理,提高识别的难度
需求:随机生成的长度不少于4位的字符,应包含字母与数字,并在显示时对其进行扭曲处理,提高识别的难度效果:这是上一篇文章中介绍的方案,但是,这种验证码过于简单。不能满足需求,修改后效果如下:完整代码:import javax.imageio.ImageIO;import java.awt.*;import java.awt.geom.AffineTransform;im
需求:
随机生成的长度不少于4位的字符,应包含字母与数字,并在显示时对其进行扭曲处理,提高识别的难度
效果:

这是上一篇文章中介绍的方案,但是,这种验证码过于简单。不能满足需求,修改后效果如下:

完整代码:
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.security.SecureRandom;
public class DistortedText {
public static void main(String[] args) {
int width = 200;
int height = 80;
int codeLength = 4;
String randomString = generateRandomString(codeLength);
String filename = "distorted_text.png";
drawDistortedText(width, height, randomString, filename);
}
private static String generateRandomString(int length) {
String lettersAndDigits = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
StringBuilder sb = new StringBuilder();
SecureRandom random = new SecureRandom();
for (int i = 0; i < length; i++) {
sb.append(lettersAndDigits.charAt(random.nextInt(lettersAndDigits.length())));
}原创不易,完成人机校验,阅读全文
相关推荐
工作小总结【验证码】使用Java生成验证码(字符只扭曲了一次)GIT项目【开源】开源验证码,Java图形验证码,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目经验分享excel中数字怎么转换为字符串工作小总结mysql 字段包含某个字符的函数POI-TL【已解决】在使用poi-tl生成的word文档时候,怎么添加目录?poi-tl生成目录解决办法算法刷题每日一个小算法之整数中每位上的数字进行反转 20190810GIT项目java版天网人脸识别系统,获取视频流 进行人脸识别后推送到流媒体服务器实时展示工作小总结Linux下,查看tomcat的日志catalina.out中指定的字符串