forked from sfms3.0/sfms3.0
5 changed files with 61 additions and 6 deletions
@ -0,0 +1,56 @@ |
|||||
|
package com.win.framework.captcha.config; |
||||
|
|
||||
|
import com.google.code.kaptcha.text.impl.DefaultTextCreator; |
||||
|
|
||||
|
import java.util.Random; |
||||
|
|
||||
|
/** |
||||
|
* 验证码文本生成器 |
||||
|
* |
||||
|
* @author win |
||||
|
*/ |
||||
|
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 (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]); |
||||
|
} |
||||
|
} |
||||
|
suChinese.append("=?@" + result); |
||||
|
return suChinese.toString(); |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue