基于Java的随机密码程序

本文介绍了一个简单的随机密码生成程序,支持多种字符组合方式,可根据需求生成不同类型的密码。

  最近公司要用随机密码程序,因为是做程序的都有一个通病不想用网上现成的软件,所以写了随机密码生成程序

  代码demo就不分享了,下面把生成代码的通用类的接口分享出来,很简单的一个算法,数字+大写字母+小写字母+特殊符号

  感兴趣的同学也可以看看我分享的纯JS写的随机密码生成程序

  package com.xxx.random.util;

  import java.util.Random;

  public class Getpass {

  private static 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', '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', '!', '@', '#', '

  , '%', '^', '&', '*', '~', '|' }; // 72个字符集

  /**

  * @param passLength

  * 随机密码长度

  * @param count

  * 随机密码个数

  * @return 随机密码数组

  */

  public static String[] getPasswords(int type, int passLength, int count) {

  String[] passwords = new String[count];// 新建一个长度为指定需要密码个数的字符串数组

  Random random = new Random();

  if (type == 1) {//生成数字

  for (int i = 0; i < count; i++) {

  StringBuilder password = new StringBuilder("");

  for (int m = 1; m <= passLength; m++) {

  password.append(chars[random.nextInt(10)]);

  }

  passwords[i] = password.toString();

  }

  } else if (type == 2) {//生成数字+小写字母

  for (int i = 0; i < count; i++) {

  StringBuilder password = new StringBuilder("");

  for (int m = 1; m <= passLength; m++) {

  password.append(chars[random.nextInt(36)]);

  }

  passwords[i] = password.toString();

  }

  } else if (type == 3) {//生成数字+大写字母+小写字母

  for (int i = 0; i < count; i++) {

  StringBuilder password = new StringBuilder("");

  for (int m = 1; m <= passLength; m++) {

  password.append(chars[random.nextInt(62)]);

  }

  passwords[i] = password.toString();// 将生成出来的密码赋值给密码数组

  }

  }

  else if (type == 4) {//生成数字+符号+大写字母+小写字母

  for (int i = 0; i < count; i++) {

  StringBuilder password = new StringBuilder("");

  for (int m = 1; m <= passLength; m++) {

  password.append(chars[random.nextInt(72)]);

  }

  passwords[i] = password.toString();// 将生成出来的密码赋值给密码数组

  }

  }

  else if (type == 5) {//生成小写字母+大写字母

  for (int i = 0; i < count; i++) {

  StringBuilder password = new StringBuilder("");

  for (int m = 1; m <= passLength; m++) {

  password.append(chars[random.nextInt(52)+10]);

  }

  passwords[i] = password.toString();

  }

  }

  else if (type == 6) {//生成小写字母+大写字母+符号

  for (int i = 0; i < count; i++) {

  StringBuilder password = new StringBuilder("");

  for (int m = 1; m <= passLength; m++) {

  password.append(chars[random.nextInt(62)+10]);

  }

  passwords[i] = password.toString();

  }

  }

  else if (type == 7) {//生成大写字母+符号

  for (int i = 0; i < count; i++) {

  StringBuilder password = new StringBuilder("");

  for (int m = 1; m <= passLength; m++) {

  password.append(chars[random.nextInt(36)+36]);

  }

  passwords[i] = password.toString();

  }

  }

  else if (type == 8) {//生成数字+大写字母

  for (int i = 0; i < count; i++) {

  StringBuilder password = new StringBuilder("");

  for (int m = 1; m <= passLength; m++) {

  if(random.nextInt(26)<=9){//数字

  password.append(chars[random.nextInt(10)]);

  }else{//大写字母

  password.append(chars[random.nextInt(26)+36]);

  }

  }

  passwords[i] = password.toString();// 将生成出来的密码赋值给密码数组

  }

  }

  else {

  System.out.println("输入错误!");

  }

  return passwords;

  }

  @SuppressWarnings("static-access")

  public static void main(String[] args) {

  Getpass get = new Getpass();

  String[] s = get.getPasswords(3, 8, 1);

  System.out.println(s[0].toString());

  // System.out.println(chars[35]);

  }

  }

  复制代码

基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值