获取验证码方法
/**
* @MethodName getVerificationCode
* @Description TODO 获取验证码
* @Author zak
*/
//想要获取验证码可以直接调用这个方法
public static String genCodes(int length, long num) { String results=""; for(int j=0;j<num;j++){ String val = ""; Random random = new Random(); for(int i = 0; i < length; i++) { String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num"; // 输出字母还是数字 if("char".equalsIgnoreCase(charOrNum)) // 字符串 { int choice = random.nextInt(2) % 2 == 0 ? 65 : 97; //取得大写字母还是小写字母 val += (char) (choice + random.nextInt(26)); } else if("num".equalsIgnoreCase(charOrNum)) // 数字 { val += String.valueOf(random.nextInt(10)); } } val= val.toLowerCase(); if(results.contains(val)){ continue; }else{ return val; } } return results; }
只输出数字的验证码
public static String genCodes(int length, long num) { String results=""; for(int j=0;j<num;j++){ String val = ""; Random random = new Random(); for(int i = 0; i < length; i++) { // String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num"; // 输出字母还是数字 // // if("char".equalsIgnoreCase(charOrNum)) // 字符串 // { // int choice = random.nextInt(2) % 2 == 0 ? 65 : 97; //取得大写字母还是小写字母 // val += (char) (choice + random.nextInt(26)); // } // else if("num".equalsIgnoreCase(charOrNum)) // 数字 // { val += String.valueOf(random.nextInt(10)); // } } val= val.toLowerCase(); if(results.contains(val)){ continue; }else{ return val; } } return results; }
调用的例子,把验证码存入redis中
/** * @MethodName getVerificationCode * @Description TODO 获取验证码 * @Author zak */ @ApiOperation(value = "获取验证码") @ApiImplicitParam(name = "${pk.attrname}", value = "获得${className}模块详细数据", required = true,dataType = "${pk.attrType}") @NoToken @ResponseBody @RequestMapping(value = "/getVerificationCode.api") public String getVerificationCode() { //获取验证码 String code = VerificationCodeUtils.genCodes(4, 1); //获取ip String ip = IpUtils.getIpAdrress(request); //设置验证码五分钟有效期 RBucket<String> keyObj = redissonService.getRBucket(ip); keyObj.set(code, 5, TimeUnit.MINUTES); return code; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?