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