JAVA编程实现随机生成指定长度的密码功能【大小写和数字组合】

 更新时间:2017年07月06日 12:06:23   作者:johennes  
这篇文章主要介绍了JAVA编程实现随机生成指定长度的密码功能,可生成带有大小写和数字组合的随机字符串,需要的朋友可以参考下

本文实例讲述了JAVA编程实现随机生成指定长度的密码功能。分享给大家供大家参考,具体如下:

import java.util.Random;
public class PassWordCreate {
  /**
   * 获得密码
   * @param len 密码长度
   * @return
   */
  public String createPassWord(int len){
    int random = this.createRandomInt();
    return this.createPassWord(random, len);
  }
  public String createPassWord(int random,int len){
    Random rd = new Random(random);
    final int maxNum = 62;
    StringBuffer sb = new StringBuffer();
    int rdGet;//取得随机数
    char[] str = { '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', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
    int count=0;
    while(count < len){
      rdGet = Math.abs(rd.nextInt(maxNum));//生成的数最大为62-1
      if (rdGet >= 0 && rdGet < str.length) {
        sb.append(str[rdGet]);
        count ++;
      }
    }
    return sb.toString();
  }
  public int createRandomInt(){
    //得到0.0到1.0之间的数字,并扩大100000倍
    double temp = Math.random()*100000;
    //如果数据等于100000,则减少1
    if(temp>=100000){
      temp = 99999;
    }
    int tempint = (int)Math.ceil(temp);
    return tempint;
  }
  public static void main(String[] args){
    PassWordCreate pwc = new PassWordCreate();
    System.out.println(pwc.createPassWord(8));
  }
}

PS:这里再为大家提供两款功能类似的在线工具供大家参考:

在线随机数字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu

高强度密码生成器:
http://tools.jb51.net/password/CreateStrongPassword

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java字符与字符串操作技巧总结》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • SpringBoot使用Feign调用其他服务接口

    SpringBoot使用Feign调用其他服务接口

    这篇文章主要介绍了SpringBoot使用Feign调用其他服务接口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Spring中使用AOP进行事务管理实例

    Spring中使用AOP进行事务管理实例

    这篇文章主要介绍了Spring中使用AOP进行事务管理实例,当在Spring项目中涉及数据库操作时,事务管理是非常重要的,它可以确保数据库操作的一致性和完整性,Spring提供了强大的事务管理功能,可以通过声明式或编程式两种方式进行配置,需要的朋友可以参考下
    2023-09-09
  • 浅谈springMVC中controller的几种返回类型

    浅谈springMVC中controller的几种返回类型

    这篇文章主要介绍了浅谈springMVC中controller的几种返回类型,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java 深入浅出分析Synchronized原理与Callable接口

    Java 深入浅出分析Synchronized原理与Callable接口

    Synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行,Runnable是执行工作的独立任务,但是不返回任何值。如果我们希望任务完成之后有返回值,可以实现Callable接口
    2022-03-03
  • Java LockSupport常用方法的源码分析

    Java LockSupport常用方法的源码分析

    这篇文章主要为大家详细介绍了Java LockSupport类中的方法和部分源码,以及面试常问到的一个小问题,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-02-02
  • RocketMQ生产者一个应用不能发送多个NameServer消息解决

    RocketMQ生产者一个应用不能发送多个NameServer消息解决

    这篇文章主要为大家介绍了RocketMQ生产者一个应用不能发送多个NameServer消息原因及解决方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Java如何在不存在文件夹的目录下创建文件

    Java如何在不存在文件夹的目录下创建文件

    这篇文章主要介绍了Java如何在不存在文件夹的目录下创建文件,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-08-08
  • 如何使用Bean Validation 解决业务中参数校验

    如何使用Bean Validation 解决业务中参数校验

    这篇文章主要介绍了如何使用Bean Validation 解决业务中参数校验操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 解决mybatis-plus通用mapper调用报错:Invalid bound statement

    解决mybatis-plus通用mapper调用报错:Invalid bound statement

    这篇文章主要介绍了解决mybatis-plus通用mapper调用报错:Invalid bound statement的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • @Conditional注解的使用场景和源码解析

    @Conditional注解的使用场景和源码解析

    这篇文章主要介绍了@Conditional注解的使用场景和源码解析,@Conditional是一个条件注解,它的作用是判断Bean是否满足条件,如果满足条件,则将Bean注册进IOC中,如果不满足条件,则不进行注册,需要的朋友可以参考下
    2023-11-11

最新评论