You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.0 KiB
75 lines
2.0 KiB
package com.ruoyi.framework.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 = (int) Math.round(Math.random() * 2); |
|
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(); |
|
} |
|
} |