`
wangthebest
  • 浏览: 6572 次
社区版块
存档分类
最新评论

Java随机生成8位密码

阅读更多

密码规则:8位+大写字母+小写字母+特殊字符

String password = "12345678";
int[] pwdindex = {0,1,2,3,4,5,6,7};

char[] specialCharacters = {'@','#','.','!','$'};

 char[] numbers = { '0','1','2','3','4','5','6','7','8','9'};
 
 char[] upperLetters = {'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'};
 
 char[] lowerLetters = {'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'};
 
 
 char[] allCharacters = { '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'};
 
 
 //1. 随机生成特殊字符,随机 放到密码2-7位置中(特殊字符不出现在开头或结尾)
 //System.out.println("随机生成特殊字符,随机 放到密码2-7位置中");
 int aindex = new Random().nextInt(5);
 //System.out.println(specialCharacters[aindex]);
 int aposition = new Random().nextInt(6)+1;
 //System.out.println(password.charAt(aposition));
 password = password.replace(password.charAt(aposition), specialCharacters[aindex]);
 //System.out.println(password);
 
 //2. 随机生成数据,随机放到1-8位置中(除去第1步占用的位置)
int bindex = new Random().nextInt(10);
//System.out.println(numbers[bindex]);
 int bposition = 0;
 do{
	 bposition = new Random().nextInt(8);
 }while(bposition==aposition);
 //System.out.println(password.charAt(bposition));
 password = password.replace(password.charAt(bposition), numbers[bindex]);
 //System.out.println(password);

//3. 随机生成大写字母,随机放到1-8位置中(除去第1、2步占用的位置)
int cindex = new Random().nextInt(26);
//System.out.println(upperLetters[cindex]);
int cposition = 0;
 do{
	 cposition = new Random().nextInt(8);
 }while(cposition==aposition||cposition==bposition);
 //System.out.println(password.charAt(bposition));
 password = password.replace(password.charAt(cposition), upperLetters[cindex]);
// System.out.println(password);

//4. 随机生成小写字母,随机放到1-8位置中(除去第1、2、3步占用的位置)
int dindex = new Random().nextInt(26);
//System.out.println(lowerLetters[dindex]);
int dposition = 0;
 do{
	 dposition = new Random().nextInt(8);
 }while(dposition==aposition||dposition==cposition||dposition==bposition);
 //System.out.println(password.charAt(bposition));
 password = password.replace(password.charAt(dposition), lowerLetters[dindex]);
 //System.out.println(password);

//前4步保证密码包含(特殊字符&大写字母&小写字母&数字  且位置是随机的)
//5. 随机生成数字大小写字母,随机放到1-8位置中(除去第1、2、3、4步占用的位置,余下四位)
 for (int i = 0; i < pwdindex.length; i++) {
	if(pwdindex[i]!=aposition&&pwdindex[i]!=bposition
			&&pwdindex[i]!=cposition&&pwdindex[i]!=dposition){
		int eindex = new Random().nextInt(62);
		password = password.replace(password.charAt(pwdindex[i]), allCharacters[eindex]);
	}
}
System.out.println(password);

 

 

分享到:
评论

相关推荐

    java随机生成12位密码

    java随机生成12位密码,自己写的,分享出来供大家免费使用

    Java随机生成六位验证码

    随机验证码。 - 随机生成十组六位字符组成的验证码。 - 验证码由大小写字母、数字字符组成。

    随机生成8位字符串密码

    随机生成8位字符密码,包括1位特殊字符,1位数字,1位小写字母,1位大写字母,其余4位随机

    java生成随机密码

    ### Java生成随机密码知识点解析 #### 一、概述 在软件开发中,为了增强系统的安全性,经常需要生成随机密码或验证码。Java作为一种广泛使用的编程语言,提供了多种方式来实现这一功能。本文将详细介绍如何利用...

    java随机密码生成器 源代码

    该代码可以生成一个大写字母+2个小写字母+6个数字+3个特殊字符的随机密码。Windows下运行参考:https://blog.csdn.net/u011177600/article/details/79520285

    java随机生成数字和字母

    ### Java随机生成数字和字母知识点解析 #### 一、引言 在Java编程语言中,随机生成数字和字母是一项常用的技术。它广泛应用于密码生成、验证码生成、游戏开发等场景。本文将通过一个简单的示例程序来介绍如何使用...

    随机生成11位数字

    ### 随机生成11位数字 #### 1. 理解需求 在给定的代码片段中,我们看到一个名为`getRandomString`的方法,其目的是生成一个长度为11的随机字符串。这个字符串包含数字和字母,但根据题目描述,我们需要的是一个纯...

    随机产生8位无重复数

    本项目基于Struts、Spring和Mybatis这三大经典Java Web框架,提供了一种灵活的方式来生成8位无重复的随机数,并确保每次生成的随机数都是唯一的。 首先,让我们来理解这三个框架的核心功能: 1. **Struts**:这是...

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

    ### Java随机生成指定长度的用户名(字母数字格式) 在日常的软件开发中,有时我们需要为系统自动生成一些临时用户账号或者密码。为了确保这些账号或密码的安全性和唯一性,我们通常会选择通过编程的方式生成随机的...

    Java随机字符串生成器,可用于生成随机密码,密约等场景,支持字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置)

    Java随机字符串生成器,可用于生成随机密码,加密算法密约(AES,RSA等)等场景,支持可选字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置),即在选择的字符范围内去实现随机字符串...

    Java 生成设定长度的随机密码

    Java 生成不定位数的 随机密码,密码长度和密码内容可以根据需要修改!

    12位随机密码生成器

    一个随机生成12位密码的生成器,密文包括特殊字符,大小写英文字母和数字

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

    本篇文章将详细解析如何通过Java语言实现一个功能,即随机生成包含字母和数字的10位随机字符串。 #### 核心需求分析 根据题目描述,我们需要实现的功能是生成一个由字母和数字组成的10位随机字符串。这里的字母只...

    随机生成6位数

    ### 随机生成6位数的Java实现 在日常的软件开发过程中,经常会遇到需要生成随机数的需求,比如验证码、密码或者简单的编号等场景。本文将深入解析一个简单的Java程序,该程序能够生成随机的6位数字字符串,并探讨其...

    随机生成用户密码、验证码.rar

    本教程将详细介绍如何使用Java编程语言来实现随机生成用户密码和验证码的功能。 首先,我们来讨论随机生成用户密码的方法。一个良好的用户密码生成策略应该考虑到以下几个因素: 1. **复杂度**:密码应包含大小写...

    java MD5,AES及 六位随机码生成.rar

    1、JAVA MD5加密,AES加密解决; 2、项目需求,根据用户ID,软件名称,时间,硬件ID生成随机6位码,用户ID是可逆的。 基本思路是,两位存储用户ID,其他四位随机加密码,然后再讲两位 和四位二次混淆加密。

    java开发技术调用rendom函数,随机生成32位不重复的字符

    "Java开发技术调用Random函数,随机生成32位不重复的字符" 在Java开发技术中,生成随机数是非常常见的需求。例如,在注册用户账户时,需要生成一个随机的密码。在游戏开发中,需要生成随机数来决定游戏的结果。在...

    java代码-使用java生成一个固定位数的随机字符串,并加密,和用户密码加密后的密文组合的源代码

    java代码-使用java生成一个固定位数的随机字符串,并加密,和用户密码加密后的密文组合的源代码 ——学习参考资料:仅用于个人学习使用!

    用JAVA 实现随机密码

    本篇文章将深入探讨如何使用Java编程语言来创建一个随机密码生成器。Java是一种广泛使用的面向对象的编程语言,它提供了丰富的库和功能,非常适合进行这样的任务。 首先,我们需要了解随机密码的基本要素。一个强大...

    Java随机生成随机密码

    上述代码是一个Java小工具,名为 "RandomPasswordGenerator",它可以生成随机密码。用户可以指定密码的长度以及是否包括大写字母、数字和特殊字符,然后通过调用 `generateRandomPassword` 方法生成随机密码。工具的...

Global site tag (gtag.js) - Google Analytics