Open jiefei30 opened 4 years ago
经问题定位是在 ArithmeticCaptchaAbstract类中:
ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("javascript"); try { chars = String.valueOf(engine.eval(sb.toString().replaceAll("x", "*"))); } catch (ScriptException e) { e.printStackTrace(); }
问题就在engine.eval的返回结果不固定,一部分为整型,一部分为浮点型
merge了吗 ?
merge了吗 ?
还没,这个估计要等一段时间了,看作者什么时候能维护一下这个项目吧。自己如果使用算数型验证码的话,可以先简单对text()方法的结果做分割处理
对算数型验证码进行测试:
for (int i = 0; i < 100; i++) { Captcha captcha = new ArithmeticCaptcha(111, 36, 3); System.out.println(captcha.text()); }
测试的结果中,少部分结果是浮点型,这样前端输验证码是肯定匹配错误的 7.0 1 -10 2.0 24 16 7 -4.0