使用以下代码只需要复制粘贴,修改一处文本生成器路径即可,文中有交代。
1.添加kaptcha依赖
com.github.penggle
kaptcha
2.3.2
2.编写验证码文本生成器,为了给数据运算验证码用的
/*** 验证码文本生成器
*
*@authorshw*/
public class KaptchaTextCreator extendsDefaultTextCreator
{private static final String[] CNUMBERS = "0,1,2,3,4,5,6,7,8,9,10".split(",");
@OverridepublicString getText()
{
Integer result= 0;
Random random= newSecureRandom();int x = random.nextInt(10);int y = random.nextInt(10);
StringBuilder suChinese= newStringBuilder();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);returnsuChinese.toString();
}
}
3