获取验证码方法

复制代码
/**
* @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;
    }
复制代码

 

  

 

posted @   我是深水的猫  阅读(889)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示