实现随机验证码

Java实现随机验证码的生成

随机验证码:

法一:普通方法

核心逻辑:

  • 1.定义一个String类型的变量存储验证码字符。
  • 2.定义一个for循环,循环n次(n为验证码的所需要字符的个数)。
  • 3.随机生成三个数字依次表示:大写字母、小写字母、数字。并使用switch语句判断。
  • 4.把生成的数字给switch判断并生成对应的随机字符,把字符交给String变量。
  • 5.循环结束后,返回String类型的变量。

代码展示:


//1.定义一个方法返回一个随机验证码:String
public static String creatCode(int n) {

    //2.循环n次,依次生成随机字符
    String code = "";
    Random random = new Random();
    for (int i = 0; i < n; i++) {
        //3.生成一个随机字符:英文 大写 小写 数字(0 1 2)
        int type = random.nextInt(3);
        switch (type) {
            case 0:
                //大写 (65 ~ 65+25) = (0 ~ 25)+65
                char ch = (char) (random.nextInt(26) + 65);
                code += ch;
                break;
            case 1:
                //小写 (0 ~ 25) + 97
                char ch1 = (char) (random.nextInt(26) + 97);
                code += ch1;
                break;
            case 2:
                //数字
                code += random.nextInt(10); // 0 ~ 9
                break;
        }
    }
    return code;
}

法二:

核心逻辑:String类方法

  • 1.定义一个String类型变量存储a~z A~Z 0~9之间的全部字符。
  • 2.循环5次,随机一个范围内的索引,获取对应字符连接起来即可。

代码展示:

//1.定义可能出现的字符信息
        String data = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

        //2.循环5次,每次生成一个随机的索引,提取对应的字符连接起来即可
        Random random = new Random();
        String code = "";
        for (int i = 0; i < 5; i++) {
            //随机一个索引
            int index = random.nextInt(data.length());
            char c = data.charAt(index);
            code += c;
        }
        //3.输出字符串变量
        System.out.println(code);

代码核心逻辑来自黑马案例

Original: https://www.cnblogs.com/zhangyouren/p/16401918.html
Author: Haziy
Title: 实现随机验证码

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622479/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SQL语句的整合

    基础语法 https://blog.csdn.net/m0_37989980/article/details/103413942 CRUD 提供给数据库管理员的基本操作,CRUD(…

    数据库 2023年6月14日
    077
  • ODA→Teigha胎压–学习笔记

    数据库结构 记录对象表 对象字典 具有固定类型和固定可访问操作的特定对象的固定结构的固定集合 可以存储和操作各种类型的对象,包括它自己。 每个记录都有一个特定的类类型,每个表也有一…

    数据库 2023年6月14日
    073
  • 深度干货!一篇Paper带您读懂HTAP | StoneDB学术分享会第①期

    在最新一届国际数据库顶级会议 ACM SIGMOD 2022 上,来自清华大学的李国良和张超两位老师发表了一篇论文:《HTAP Database: What is New and …

    数据库 2023年6月11日
    088
  • Golang环境安装

    一、下载地址 Golang: Downloads – The Go Programming Language GoLand编辑器: Download GoLand: A…

    数据库 2023年6月14日
    071
  • Hadoop生态一—分布式文件系统HDFS

    分布式文件系统: 统一管理分布在集群上的文件系统设计思想分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析; 在大数据系统中作…

    数据库 2023年6月6日
    090
  • index_merge引发的死锁排查

    前几天排查了一个死锁问题,最开始百思不得其解,因为发生死锁的两个事务是单语句事务,语句类型相同(where属性列相同,仅值不同),而且语句都走了相同的索引,但最终确实发生了死锁。通…

    数据库 2023年6月9日
    0115
  • 一文说透 MySQL JSON 数据类型(收藏)

    JSON 数据类型是 MySQL 5.7.8 开始支持的。在此之前,只能通过字符类型(CHAR,VARCHAR 或 TEXT )来保存 JSON 文档。 相对字符类型,原生的 JS…

    数据库 2023年5月24日
    081
  • vue进阶(一)

    vue.js 数据绑定 定义:将数据和视图相关联,当数据发生变化时,可以自动更新视图。 语法 1) 插值 使用双大括号{{}},双大括号会将里面的值当做字符串进行处理;而如果值是H…

    数据库 2023年6月6日
    0106
  • VScode 添加jvm 启动参数 VScode 添加main方法参数

    问题场景. 本地环境使用的是 jdk 17 我需要在vscode 上运行一个jdk1.8 的项目 结果报错 : module java.base does not “o…

    数据库 2023年6月14日
    088
  • Nginx 代理超时

    Nginx代理超时 内部测试并未出现问题 但是再客户那边出现了 BUG System.InvalidOperationException: Response Content-Len…

    数据库 2023年6月11日
    072
  • 一个小工具帮你搞定实时监控Nginx服务器

    Linux运维工程师的首要职责就是保证业务7 x 24小时稳定的运行,监控Web服务器对于查看网站上发生的情况至关重要。关注最多的便是日志变动,查看实时日志文件变动大家第一反应应该…

    数据库 2023年6月9日
    0155
  • Github 星标 8K+ 这款国人开源的 Redis 可视化管理工具,真香…

    做程序员就少不了与一些工具打交道,比如:监控工具、管理工具等,有些工具是命令行界面,有些工具是可视化界面,反正都是可以能够满足日常使用的功能需求。 对于redis管理工具来说,也有…

    数据库 2023年6月9日
    0114
  • mysql语法使用详细代码版

    mysql 1.什么是数据库 数据库:(DB,DataBase)作用:用来存储数据,管理数据。Txt,Excel,word是在数据库出现之前存储数据的。概念:数据仓库,安装在操作系…

    数据库 2023年5月24日
    083
  • Go 并发编程并非易事

    前言 Go 语言的一大卖点可以说是 并发编程。作为一门非常年轻的语言(诞生于2006年),在Google的培育下,为了充分利用多核机器资源的并发优势,从底层原生支持并发。 实现并发…

    数据库 2023年6月6日
    099
  • kubectl 最新常用命令 –V1.24版本

    alias k=kubectl complete -F __start_kubectl k Kubectl 上下文和配置 kubectl config view # &#x…

    数据库 2023年6月14日
    075
  • 23种设计模式之状态模式和策略模式的区别

    文章目录 概述 状态模式 策略模式 区别 总结 概述 在行为类设计模式中,状态模式和策略模式是亲兄弟,两者非常相似,我们先看看两者的通用类图,把两者放在一起比较一下 ; 状态模式 …

    数据库 2023年6月6日
    0125
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球