利用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 生成随机密码相关推荐

  1. java随机产生密码_用Java生成随机密码的方法

    最近各种数据库泄露问题,让我不得不考虑自身密码的强度,下面特意写两种生成密码的方法,已被日后之用: 介绍两种生成随机密码的方式:(在密码字典里面,可以根据实际需要,手工注释不需要生成的字符段) 方式一 ...

  2. Java生成随机密码(包含大写、小写、数字、特殊字符)

    前言 [本文旨在为没有思路或没有什么思路的提供参考] 见过某个笔试题:生成一个不少于6位的随机密码,要求含有大写字母.小写字母.数字.特殊字符中的三种. 分析一波 思路: 两个重点,一个是随机,一个是 ...

  3. java生成随机密码,包含大小写字母,数字,特殊字符等

    public static String generatePwd() {// 生成指定长度(2)的大写字母String upperCaseLetters = RandomStringUtils.ran ...

  4. java中生成随机密码

    java中生成随机密码的方法: str+=(char)(Math.Random()*26 + 'A'); //随机生成大写字母 //密码的类型,枚举类型public enum PasswordType ...

  5. python怎么重复输入密码直至正确_python作业/练习/实战:生成随机密码

    作业要求 1.写一个函数,函数的功能是生成一批密码,存到文件里面 def gen_password(num): #num代表生成多少条密码 2.密码复杂度要求 1)长度在,8-16位之间 2)密码必须 ...

  6. 生成随机密码和邮箱、手机匹配

    package com.alibaba.uyuni.common.util;import java.util.Random;public class GeneratePassword {/*** 生成 ...

  7. java生成缩略图类源码

    把做工程过程比较好的一些内容备份一下,如下内容段是关于 java生成缩略图类的内容. package com.whatycms.common.util; import java.awt.image.B ...

  8. java 生成二维码 QRCode、zxing 两种方式

    版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢. https://blog.csdn.net/testcs_dn/article/details/ ...

  9. 揭开ASP.NET生成随机密码的面纱

    不知道从何时开始流行这种注册验证方式 .在开发需要用户注册后才能使用提供的各项功能的应用程序时,在新用户提交注册信息后,较常见的做法是由程序生成随机密码,然后发送密码到用户注册时填写的电子信箱,用户再 ...

最新文章

  1. torch量化感知训练示例项目
  2. Spark的安装和使用
  3. iOS核心动画高级技术(十三) 高效绘图
  4. 网络营销——网站在网络营销优化中不收录了怎么办呢?
  5. 2017-11-15 软件包 java.io学习
  6. SEO--我们是不是走错了路?
  7. 可视化图表种类还不清楚?快来看看这两个宝藏网站吧~~
  8. Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini以及服务无法启动的解决办法以及修改初始密码的方法...
  9. 实现多租户系统的一点思考
  10. 200多个js技巧代码(五)
  11. Python 16th Day
  12. Primavera P6 数据字典分享
  13. 2021年中国新型电力系统行业市场现状、竞争格局与发展方向分析「图」
  14. Diygw拖拽自动生成App
  15. ELK之Kibana入门及使用
  16. 使用async.whilst要注意的地方
  17. 简洁风个人主页(1) html 静态布局
  18. EHR_ERAL_KAYANG店铺提点方案相关函数
  19. Leedcode编程题18: 四数之和----C++实现
  20. Android 将PDF文件转Bitmap,并将Bitmap以图片的方式保存到相册

热门文章

  1. java计算机毕业设计校园二手交易平台源程序+mysql+系统+lw文档+远程调试
  2. 移动电源当中的自动检测负载方式讲解
  3. Django框架三板斧
  4. 软件测试工程师的介绍
  5. Palm OS 5开发概述
  6. 手把手教你使用hexo搭建属于你的个人博客
  7. JetBrains 如何看待自己的软件在中国被频繁破解?
  8. 网络协议常见问题解答。
  9. 各种O2O,B2C,B2B,C2C的整理
  10. 树莓派4B——操作系统的安装