Java 生成任意长度的验证码的两个方法

|--需求说明

1、要求生成任意长度的验证码

2、验证码要求包含大小写英文字母和数字

|--实现方式

采用随机数的方式,分别在数字,大小写英文字母里面抽取字符,抽取次数由for循环控制

|--代码内容

 1 package com.work.work3;
 2
 3 /**
 4  * @auther::9527
 5  * @Description: 验证码生成器
 6  * @program: shi_yong
 7  * @create: 2019-07-30 20:45
 8  */
 9 public class Method {
10     //采用char对照表生成验证码
11     public static String verCode1(int num) {
12         String code = "";  //设置一个变量,用来接收验证码
13         for (int i = 0; i < num; i++) {
14             //使用一个布尔变量,判定单个验证码是数字还是英文字母
15             boolean choose = ((int) (Math.random() * 2) == 0) ? true : false;
16             if (choose) {
17                 //如果choose为真,则选取数字做单个验证码并连接到code里面
18                 code += (int) (Math.random() * 10); //在0-9之间选择一个数字做验证码
19             } else {
20                 //如果choose为假,则选取英文字母做单个验证码并连接到code里面
21                 //用char对照表里面的序号,确认本次英文字母是采用大写还是小写,
22                 // 65是大写英文字母开头,97是小写英文字母开头
23                 int temp = ((int) (Math.random() * 2) == 0) ?65:97;
24                 char ch = (char)((Math.random()*26)+temp);
25                 code += ch;
26             }
27         }
28         //返回一个字符串
29         return code;
30     }
31
32     public static String verCode2(int num){
33         String code="";
34         //采用变量string接收所有0-9,a-z,A-Z的字符
35         String string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
36         //将字符串拆分成字符串数组
37         String[] str= string.split("");
38         for (int i = 0; i <num ; i++) {
39             //在数组里面用下标随机出字符串
40             code += str[(int)(Math.random()*str.length)];
41         }
42         return code;
43     }
44
45     public static void main(String[] args) {
46         System.out.println("对照表法:"+Method.verCode1(6));
47         System.out.println("split分割字符串法:"+Method.verCode2(6));
48
49     }
50 }

随机的方法及程序入口

|--运行结果

原文地址:https://www.cnblogs.com/twuxian/p/11272810.html

时间: 2024-10-25 17:46:07

Java 生成任意长度的验证码的两个方法的相关文章

将引用了第三方jar包的Java项目打包成jar文件的两种方法

方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,内容如下: Manifest-Version: 1.0 Class-Path: lib/commons-codec.jar lib/commons-httpclient-3.1.jar lib/commons-logging-1.1.jar lib/log4j-1.

.NET(C#)生成指定长度的随机字符串的通用方法

.NET(C#)生成指定长度的随机字符串的通用方法,此方法可以指定字符串的长度,是否包含数字,是否包含符号,是否包含小写字母,是否包含大写字母等, 源码: 1 #region 生成指定长度的随机字符串 2 /// <summary> 3 /// 生成指定长度的随机字符串 4 /// </summary> 5 /// <param name="intLength">随机字符串长度</param> 6 /// <param name=&

Java构造和解析Json数据的两种方法详解一

原文链接:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多Java下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造和解析Json数据的两种方法详解二 一.介绍 JSO

【转】Java构造和解析Json数据的两种方法详解一

Java构造和解析Json数据的两种方法详解一 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造和解析Json数据的两种方法详解二 一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和J

Java构造和解析Json数据的两种方法详解一——json-lib

转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造和解析Json数据的两种方法详解二 一.介绍 JSON-

Java构造和解析Json数据的两种方法详解二——org.json

转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/24/3096437.html 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Json数据的方法示例.       用json-lib构造和解析Json数据的方法详解请参见我上一篇博文:Java构造和解析Json数据的两种方法详解一 一.介

Python随机生成验证码的两种方法

Python随机生成验证码的方法有很多,今天给大家列举两种,大家也可以在这个基础上进行改造,设计出适合自己的验证码方法方法一:利用range Python随机生成验证码的方法有很多,今天给大家列举两种,大家也可以在这个基础上进行改造,设计出适合自己的验证码方法 方法一: 利用range方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # -*- coding: utf-8 -*- import random def generate_verification_c

生成任意长度的随机数 JS

1.Math.random().toString(36).substr(2); 结果:ywv6cnpkliahj4tep0 2. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 /* ** randomWord 产生任意长度随机字母数字组合 ** randomFlag-是否任意长度 min-任意长度最小位[固定位数] max-任意长度最大位 ** xuanfeng 2014-08-28 */ function randomWord(ra

【Web】Java生成中文GIF动态验证码-集成SpringMVC

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 说明 GIF验证码相对于JPG图片验证码来说,要更难破解一些,加大了破解的代价. 从昨天到现在,写了一个小小的GIF验证码项目(中文成语). 当然,你可以自己修改成字母数字的.我只是单纯的觉得中文验证码的破解代价更高一点~ 我在这里生成GIF图片的类,用到了国外牛人的三个类,也就是: AnimatedGifEncoder LZWEncoder 和NeuQuant,这三个类. 没办法