`
happyqing
  • 浏览: 3198169 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java生成随机字符串(密码)包含字母,数字,a-z,A-Z,0-9

    博客分类:
  • java
阅读更多

 

import java.util.Random;
import java.util.UUID;

/**
 * 生产指定长度随机字符串a-z,A-Z,0-9
 * @author happyqing
 * @since 2016.5.30
 */
public class RandomString {

	/**
	 * 获取随机字符串 a-z,A-Z,0-9
	 * @param length	长度
	 * @return
	 */
	public static String getRandomString(int length) {
		String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
		Random random = new Random();
		StringBuffer sb = new StringBuffer();

		for (int i = 0; i < length; ++i) {
			//int number = random.nextInt(62);// [0,62)
			sb.append(str.charAt(random.nextInt(62)));
		}
		return sb.toString();
	}
	
	/**
	 * JAVA获得0-9,a-z,A-Z范围的随机数
	 * 
	 * @param length
	 *            随机数长度
	 * @return String
	 */
	public static String getRandomChar(int length) {
		char[] chr = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 
				'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 
				'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
		Random random = new Random();
		StringBuffer buffer = new StringBuffer();
		for (int i = 0; i < length; i++) {
			buffer.append(chr[random.nextInt(62)]);
		}
		return buffer.toString();
	}
	
	/**
	 * 获取随机字符串 a-z
	 * @param length	长度
	 * @return
	 */
	public static String getLowerLetter(int length) {
		String str = "abcdefghijklmnopqrstuvwxyz";
		Random random = new Random();
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < length; ++i) {
			sb.append(str.charAt(random.nextInt(26)));
		}
		return sb.toString();
	}
	
	/**
	 * 获取随机字符串 0-9
	 * @param length	长度
	 * @return
	 */
	public static String getNumber(int length) {
		String str = "0123456789";
		Random random = new Random();
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < length; ++i) {
			sb.append(str.charAt(random.nextInt(10)));
		}
		return sb.toString();
	}
	
	/**
	 * 获取随机字符串 0-9,a-z,0-9
	 * 有两遍0-9,增加数字概率
	 * @param length	长度
	 * @return
	 */
	public static String getLowerLetterNumber(int length) {
		String str = "0123456789abcdefghijklmnopqrstuvwxyz0123456789";
		Random random = new Random();
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < length; ++i) {
			sb.append(str.charAt(random.nextInt(46)));
		}
		return sb.toString();
	}
	
	/**
	 * 获取随机密码,lLength位小写英文+nLength位数字
	 * @param lLength	字母长度
	 * @param nLength	数字长度
	 * @return
	 */
	public static String getPasswordSimple(int lLength, int nLength) {
		return getLowerLetter(lLength)+getNumber(nLength);
	}
	
	/**
	 * 获取随机密码,包含英文和数字
	 * @param length 密码长度
	 * @return
	 */
	public static String getPasswordComplex(int length) {
		String password;
		while(true){
			password = getLowerLetterNumber(6);
			//必须包含字母和数字
            if (password.matches("(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}")) {
                return password;
            }
        }
	}

	public static void main(String[] args) {
//		System.out.println(getRandomString(32));
//		System.out.println(getRandomChar(32));
//		//UUID
//		String uuid = UUID.randomUUID().toString().replaceAll("-", "");
//		System.out.println(uuid);
		
		System.out.println(getPasswordSimple(1,5));
		System.out.println(getPasswordComplex(6));
	}
}

 

分享到:
评论

相关推荐

    JAVA获得包含0-9、a-z、A-Z范围内字符串的的随机数实例

    数组中包含了数字0-9,小写字母a-z和大写字母A-Z,总共62个字符。然后使用Java的`Random`类来生成随机索引,将随机索引对应的字符添加到`StringBuffer`中。以下是具体实现: ```java public static String ...

    随机a-z A-Z都转为大写字母【三元运算和位运算】

    - 小写字母a-z的ASCII码范围是97-122。 - 大写字母A-Z的ASCII码范围是65-90。 - 通过简单的数学运算可以实现大小写之间的转换。例如,将小写字母转换为大写时,只需减去32即可。 ##### 3.3 三元运算符与位运算 - *...

    获取同时含有数字、大写字母、小写字母的随机字符串

    在IT领域,生成随机字符串是一项常见的任务,尤其在密码生成、数据填充或安全测试中。在给定的标题和描述中,我们关注的是如何创建一个包含数字、大写字母和小写字母的随机字符串,且长度可指定。这样的字符串通常...

    随机生成10位数包含字母和数字

    在编程中,经常会遇到需要生成随机字符串的需求,比如在创建验证码、密码或者用于其他安全相关的应用时。本篇文章将详细解析如何通过Java语言实现一个功能,即随机生成包含字母和数字的10位随机字符串。 #### 核心...

    Java根据正则表达式生成字符串—Xeger,automaton

    在本篇文章中,我们将深入探讨如何利用Java中的Xeger和automaton库来根据正则表达式生成随机字符串。 首先,我们要了解什么是正则表达式。正则表达式,也被称为regex,是由字符、特殊符号组成的模式,用于匹配一...

    生成随机字符串的方法

    在计算机编程中,生成随机字符串是一项常见的需求,尤其是在密码学、安全验证、数据加密以及各种游戏开发中。本文将详细解释几种在Java中生成随机字符串的方法,并通过具体代码示例来展示如何实现这些方法。 #### ...

    java生成随机密码

    这包括数字(0-9)和小写字母(a-z)。 - **原因**:选择使用`StringBuffer`而非`StringBuilder`或普通字符串是因为在多线程环境下,`StringBuffer`提供线程安全的特性,虽然在这个单线程示例中并不一定需要,但在...

    java 随机产生指定长度的用户名字母 数字格式

    3. **定义生成随机字符串的方法**: - `public static String genRandomNum(int pwd_len)`:接收一个整型参数 `pwd_len` 表示需要生成的字符串长度。 - 定义了一个字符数组 `str` 来存储所有可能的字符(小写字母...

    生成指定长度的随机字符串

    Java也有类似的方法,可以使用`java.util.Random`类和`Character`类来生成随机字符串: ```java import java.util.Random; public class RandomStringGenerator { public static String generate(int length) { ...

    RandomNumber.java

    生成随机字符串 参数passLength:要生成多少长度的字符串 param type:需要哪种类型 // type=0:纯数字(0-9) // type=1:全小写字母(a-z) // type=2:全大写字母(A-Z) // type=3: 数字+小写字母 // type=4: 数字...

    JSP验证码(随机生产1-9数字和小写字母)

    1. **生成随机字符串**:在Java中,可以使用`java.util.Random`类和`char`数组来生成包含数字和字母的随机字符串。首先定义一个包含所有可能字符的数组,然后使用`Random`类的`nextInt()`方法在数组范围内选择字符。...

    jsp验证码(数字、数字字母)登陆校验

    - 定义一个字符串,包含所有可能的字符(例如,数字0-9和字母a-z、A-Z)。 - 使用`Random`或`SecureRandom`生成指定长度的随机字符串,例如4位数字和字母混合的验证码。 2. **将字符串转化为图形** - 创建一个`...

    java Xeger 根据正则表达式生成满足的随机数据

    然后,你可以使用以下代码来生成随机字符串: ```java import org.apache.commons.text.RandomStringGenerator; import org.apache.commons.text.xeger.Xeger; public class Main { public static void main...

    java实现动态产生密码

    在这个例子中,它包括0-9的数字,以及a-z和A-Z的字母: ```java char[] chars = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o...

    java随机生成验证码

    例如,创建一个包含0-9和A-Z的字符集,通过随机数选择字符。 2. **字符串生成**: 生成指定长度(如4位或6位)的随机字符串,将上述步骤中的随机字符组合起来。可以使用`StringBuilder`类或`String`的`concat()`...

    Java 验证码 包含字母和数字

    在Java中,我们可以使用`java.util.Random`类来生成随机数,进而构建随机字符串。结合`Character`类的静态方法,我们可以从预定义的字符集中选择字符,比如大小写字母和数字。 例如,以下代码展示了如何生成一个...

    java随机生成8位数授权码的实例

    这个简单的示例展示了如何在Java中生成随机字符串,可以作为实际项目中的基础,根据需求进行扩展,比如增加数字、特殊字符等。同时,也可以调整生成的长度或者调整字符集,以满足不同的安全和功能要求。 总结来说,...

    java将数字转换成大写字母

    在Java编程语言中,将数字转换为大写字母涉及到字符编码和字符串操作。这个过程通常用于格式化输出,比如在创建验证码、显示特定格式的序列号或者处理与数字相关的特殊需求时。以下是一些关键的知识点,解释了如何在...

    java隨機產生4位字符驗證碼

    对于四位字符验证码,我们通常包括0-9的数字和A-Z(大写)或a-z(小写)的字母。 ```java private static final String CHARACTERS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; ``` 3. **生成随机验证码**:使用`...

    javascript创建含数字字母的随机字符串方法总结

    第二种方法并不需要预先定义字符集,而是直接使用了一个包含0-9、大写字母A-Z和小写字母a-z的62字符的编码系统。函数`randomstring`生成随机字符串的过程如下: ```javascript function randomstring(L) { var s =...

Global site tag (gtag.js) - Google Analytics