Java 生成随机密码
利用Random方法生产随机密码。
将字母,数字,符号拆开成可取用的数组,按照密码长度做生成策略, 分别为小写字母占密码长度的1/2,大写字母和数字各占1/4,符号占剩余无法除尽的(最多两个符号)。
然后循环取值,每一次从数组中随机拿取字符,并把这个字符随机放入生产的密码字符串中的某个位置。public final static String[] LOWER_CASES = { "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"};
public final static String[] UPPER_CASES = { "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"};
public final static String[] NUMS_LIST = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
public final static String[] SYMBOLS_ARRAY = {"!","~","^","_","*"};/*** 生成随机密码* @param pwd_len 密码长度* @return 密码的字符串*/
public static String genRandomPwd(int pwd_len) {if ( pwd_len < 6 || pwd_len >20 ) {return "";}int lower = pwd_len / 2 ;int upper = (pwd_len - lower) /2;int num = (pwd_len - lower) / 2;int symbol = pwd_len - lower - upper - num ;StringBuffer pwd = new StringBuffer();Random random = new Random();int position = 0;while((lower + upper + num + symbol) > 0 ){if(lower > 0){position = random.nextInt(pwd.length() + 1);pwd.insert(position,LOWER_CASES[random.nextInt(LOWER_CASES.length)]);lower--;}if(upper > 0){position = random.nextInt(pwd.length() + 1);pwd.insert(position,UPPER_CASES[random.nextInt(UPPER_CASES.length)]);upper--;}if(num > 0){position = random.nextInt(pwd.length() + 1);pwd.insert(position,NUMS_LIST[random.nextInt(NUMS_LIST.length)]);num--;}if(symbol > 0){position = random.nextInt(pwd.length() + 1);pwd.insert(position,SYMBOLS_ARRAY[random.nextInt(SYMBOLS_ARRAY.length)]);symbol--;}System.out.println(pwd.toString());}return pwd.toString();
}
Java 生成随机密码相关推荐
- java随机产生密码_用Java生成随机密码的方法
最近各种数据库泄露问题,让我不得不考虑自身密码的强度,下面特意写两种生成密码的方法,已被日后之用: 介绍两种生成随机密码的方式:(在密码字典里面,可以根据实际需要,手工注释不需要生成的字符段) 方式一 ...
- Java生成随机密码(包含大写、小写、数字、特殊字符)
前言 [本文旨在为没有思路或没有什么思路的提供参考] 见过某个笔试题:生成一个不少于6位的随机密码,要求含有大写字母.小写字母.数字.特殊字符中的三种. 分析一波 思路: 两个重点,一个是随机,一个是 ...
- java生成随机密码,包含大小写字母,数字,特殊字符等
public static String generatePwd() {// 生成指定长度(2)的大写字母String upperCaseLetters = RandomStringUtils.ran ...
- java中生成随机密码
java中生成随机密码的方法: str+=(char)(Math.Random()*26 + 'A'); //随机生成大写字母 //密码的类型,枚举类型public enum PasswordType ...
- python怎么重复输入密码直至正确_python作业/练习/实战:生成随机密码
作业要求 1.写一个函数,函数的功能是生成一批密码,存到文件里面 def gen_password(num): #num代表生成多少条密码 2.密码复杂度要求 1)长度在,8-16位之间 2)密码必须 ...
- 生成随机密码和邮箱、手机匹配
package com.alibaba.uyuni.common.util;import java.util.Random;public class GeneratePassword {/*** 生成 ...
- java生成缩略图类源码
把做工程过程比较好的一些内容备份一下,如下内容段是关于 java生成缩略图类的内容. package com.whatycms.common.util; import java.awt.image.B ...
- java 生成二维码 QRCode、zxing 两种方式
版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢. https://blog.csdn.net/testcs_dn/article/details/ ...
- 揭开ASP.NET生成随机密码的面纱
不知道从何时开始流行这种注册验证方式 .在开发需要用户注册后才能使用提供的各项功能的应用程序时,在新用户提交注册信息后,较常见的做法是由程序生成随机密码,然后发送密码到用户注册时填写的电子信箱,用户再 ...
最新文章
- torch量化感知训练示例项目
- Spark的安装和使用
- iOS核心动画高级技术(十三) 高效绘图
- 网络营销——网站在网络营销优化中不收录了怎么办呢?
- 2017-11-15 软件包 java.io学习
- SEO--我们是不是走错了路?
- 可视化图表种类还不清楚?快来看看这两个宝藏网站吧~~
- Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini以及服务无法启动的解决办法以及修改初始密码的方法...
- 实现多租户系统的一点思考
- 200多个js技巧代码(五)
- Python 16th Day
- Primavera P6 数据字典分享
- 2021年中国新型电力系统行业市场现状、竞争格局与发展方向分析「图」
- Diygw拖拽自动生成App
- ELK之Kibana入门及使用
- 使用async.whilst要注意的地方
- 简洁风个人主页(1) html 静态布局
- EHR_ERAL_KAYANG店铺提点方案相关函数
- Leedcode编程题18: 四数之和----C++实现
- Android 将PDF文件转Bitmap,并将Bitmap以图片的方式保存到相册