Sfoglia il codice sorgente

update 优化随机数生成方式 避免容易生成两个相同随机数的问题

疯狂的狮子li 4 anni fa
parent
commit
3b79582251

+ 8 - 8
ruoyi-gateway/src/main/java/com/ruoyi/gateway/captcha/UnsignedMathGenerator.java

@@ -15,7 +15,7 @@ public class UnsignedMathGenerator implements CodeGenerator {
 
     private static final long serialVersionUID = -5514819971774091076L;
 
-    private static final String operators = "+-*";
+    private static final String OPERATORS = "+-*";
 
     /**
      * 参与计算数字最大长度
@@ -41,14 +41,14 @@ public class UnsignedMathGenerator implements CodeGenerator {
     @Override
     public String generate() {
         final int limit = getLimit();
-        int min = RandomUtil.randomInt(limit);
-        int max = RandomUtil.randomInt(min, limit);
-        String number1 = Integer.toString(max);
-        String number2 = Integer.toString(min);
-        number1 = StringUtils.rightPad(number1, this.numberLength, CharUtil.SPACE);
-        number2 = StringUtils.rightPad(number2, this.numberLength, CharUtil.SPACE);
+        int a = RandomUtil.randomInt(limit);
+        int b = RandomUtil.randomInt(limit);
+        String max = Integer.toString(Math.max(a,b));
+        String min = Integer.toString(Math.min(a,b));
+        max = StringUtils.rightPad(max, this.numberLength, CharUtil.SPACE);
+        min = StringUtils.rightPad(min, this.numberLength, CharUtil.SPACE);
 
-        return number1 + RandomUtil.randomChar(operators) + number2 + '=';
+        return max + RandomUtil.randomChar(OPERATORS) + min + '=';
     }
 
     @Override