|  |  |  | 
|---|
|  |  |  | package com.ruoyi.gateway.config; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.Random; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.google.code.kaptcha.text.impl.DefaultTextCreator; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 验证码文本生成器 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @author ruoyi | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public class KaptchaTextCreator extends DefaultTextCreator | 
|---|
|  |  |  | { | 
|---|
|  |  |  | private static final String[] CNUMBERS = "0,1,2,3,4,5,6,7,8,9,10".split(","); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public String getText() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Integer result = 0; | 
|---|
|  |  |  | Random random = new Random(); | 
|---|
|  |  |  | int x = random.nextInt(10); | 
|---|
|  |  |  | int y = random.nextInt(10); | 
|---|
|  |  |  | StringBuilder suChinese = new StringBuilder(); | 
|---|
|  |  |  | int randomoperands = random.nextInt(3); | 
|---|
|  |  |  | if (randomoperands == 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | result = x * y; | 
|---|
|  |  |  | suChinese.append(CNUMBERS[x]); | 
|---|
|  |  |  | suChinese.append("*"); | 
|---|
|  |  |  | suChinese.append(CNUMBERS[y]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else if (randomoperands == 1) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if ((x != 0) && y % x == 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | result = y / x; | 
|---|
|  |  |  | suChinese.append(CNUMBERS[y]); | 
|---|
|  |  |  | suChinese.append("/"); | 
|---|
|  |  |  | suChinese.append(CNUMBERS[x]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | result = x + y; | 
|---|
|  |  |  | suChinese.append(CNUMBERS[x]); | 
|---|
|  |  |  | suChinese.append("+"); | 
|---|
|  |  |  | suChinese.append(CNUMBERS[y]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else if (randomoperands == 2) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (x >= y) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | result = x - y; | 
|---|
|  |  |  | suChinese.append(CNUMBERS[x]); | 
|---|
|  |  |  | suChinese.append("-"); | 
|---|
|  |  |  | suChinese.append(CNUMBERS[y]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | result = y - x; | 
|---|
|  |  |  | suChinese.append(CNUMBERS[y]); | 
|---|
|  |  |  | suChinese.append("-"); | 
|---|
|  |  |  | suChinese.append(CNUMBERS[x]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | result = x + y; | 
|---|
|  |  |  | suChinese.append(CNUMBERS[x]); | 
|---|
|  |  |  | suChinese.append("+"); | 
|---|
|  |  |  | suChinese.append(CNUMBERS[y]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | suChinese.append("=?@" + result); | 
|---|
|  |  |  | return suChinese.toString(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public class KaptchaTextCreator extends DefaultTextCreator { | 
|---|
|  |  |  | private static final String[] CNUMBERS = "0,1,2,3,4,5,6,7,8,9,10".split(","); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public String getText() { | 
|---|
|  |  |  | Integer result = 0; | 
|---|
|  |  |  | Random random = new Random(); | 
|---|
|  |  |  | int x = random.nextInt(10); | 
|---|
|  |  |  | int y = random.nextInt(10); | 
|---|
|  |  |  | StringBuilder suChinese = new StringBuilder(); | 
|---|
|  |  |  | int randomoperands = random.nextInt(3); | 
|---|
|  |  |  | if (randomoperands == 0) { | 
|---|
|  |  |  | result = x * y; | 
|---|
|  |  |  | suChinese.append(CNUMBERS[x]); | 
|---|
|  |  |  | suChinese.append("*"); | 
|---|
|  |  |  | suChinese.append(CNUMBERS[y]); | 
|---|
|  |  |  | } else if (randomoperands == 1) { | 
|---|
|  |  |  | if ((x != 0) && y % x == 0) { | 
|---|
|  |  |  | result = y / x; | 
|---|
|  |  |  | suChinese.append(CNUMBERS[y]); | 
|---|
|  |  |  | suChinese.append("/"); | 
|---|
|  |  |  | suChinese.append(CNUMBERS[x]); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | result = x + y; | 
|---|
|  |  |  | suChinese.append(CNUMBERS[x]); | 
|---|
|  |  |  | suChinese.append("+"); | 
|---|
|  |  |  | suChinese.append(CNUMBERS[y]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else if (randomoperands == 2) { | 
|---|
|  |  |  | if (x >= y) { | 
|---|
|  |  |  | result = x - y; | 
|---|
|  |  |  | suChinese.append(CNUMBERS[x]); | 
|---|
|  |  |  | suChinese.append("-"); | 
|---|
|  |  |  | suChinese.append(CNUMBERS[y]); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | result = y - x; | 
|---|
|  |  |  | suChinese.append(CNUMBERS[y]); | 
|---|
|  |  |  | suChinese.append("-"); | 
|---|
|  |  |  | suChinese.append(CNUMBERS[x]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | result = x + y; | 
|---|
|  |  |  | suChinese.append(CNUMBERS[x]); | 
|---|
|  |  |  | suChinese.append("+"); | 
|---|
|  |  |  | suChinese.append(CNUMBERS[y]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | suChinese.append("=?@" + result); | 
|---|
|  |  |  | return suChinese.toString(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|