Bladeren bron

添加中文验证码

silent 4 jaren geleden
bovenliggende
commit
70725eb23c

+ 2 - 4
src/main/java/org/springblade/gateway/goods_gateway/controller/AppHelpGoodsController.java

@@ -92,11 +92,9 @@ public class AppHelpGoodsController {
 	public R<String> createPropsVerificationCode(@ApiParam(value = "道具ID", required = true) @RequestParam Long helpGoodsId,
 												 @ApiParam(value = "用户ID", required = true) @RequestParam Long userId,
 												 @ApiParam(value = "作品ID", required = true) @RequestParam Long productId) {
-		// 自定义纯数字的验证码(随机4位数字,可重复)
-//		RandomGenerator randomGenerator = new RandomGenerator("0123456789", 4);
 		// 创建图像验证码
-		LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(200, 100);
-//		lineCaptcha.setGenerator(randomGenerator);
+		LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(250, 100);
+//		lineCaptcha.setGenerator(new ChineseGenerator(4));
 		// 重新生成code
 		lineCaptcha.createCode();
 		// 创建验证码,并放到缓存中,有效期60秒

+ 47 - 0
src/main/java/org/springblade/gateway/goods_gateway/generator/ChineseGenerator.java

@@ -0,0 +1,47 @@
+package org.springblade.gateway.goods_gateway.generator;
+
+import cn.hutool.captcha.generator.AbstractGenerator;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @Author: Silent
+ * @Description 中文生成器
+ * @Date: Created in 14:13 2022/1/5
+ * @Modified By:
+ */
+public class ChineseGenerator extends AbstractGenerator {
+	/**
+	 * 构造方法
+	 *
+	 * @param count
+	 */
+	public ChineseGenerator(int count) {
+		super(count);
+	}
+
+	/**
+	 * 生成中文字符串
+	 *
+	 * @return
+	 */
+	@Override
+	public String generate() {
+		StringBuilder stringBuilder = new StringBuilder();
+		for (int i = 0; i < this.length; i++) {
+			stringBuilder.append((char) (0x4e00 + (int) (Math.random() * (0x9fa5 - 0x4e00 + 1))));
+		}
+		return stringBuilder.toString();
+	}
+
+	/**
+	 * 校验器
+	 *
+	 * @param code
+	 * @param userInputCode
+	 * @return
+	 */
+	@Override
+	public boolean verify(String code, String userInputCode) {
+		return StringUtils.equals(code, userInputCode);
+	}
+}