Java代码如何创建随机密码呢?

乔欣 Java经验 发布时间:2023-02-05 20:36:13 阅读数:5627 1
下文笔者讲述使用java代码创建随机密码的方法分享,如下所示

随机密码创建方法

使用SecureRandom类
    提供的伪随机数生成器
	即可生成相对安全的随机数
例:生成一个随机密码,密码需包含以下信息:
由大写字母AZ,小写字母az,数字0-9和符号#,$,%,&和@组成
package com.java265.passwordgen;
 
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.SecureRandom;
import java.util.Arraylist;
import java.util.Collections;
 
public class PasswordGenerator {
 
    private SecureRandom srand;
    private ArrayList validch;
 
    public PasswordGenerator() throws NoSuchAlgorithmException, NoSuchProviderException {
        srand = new SecureRandom();
        validch = new ArrayList<>();
  
        for (int i = 65; i < 91; i++) {
            validch.add((char) i);// A-Z
            validch.add((char) (i + 32));// a-z
        }
        for (int i = 48; i < 58; i++) {
            validch.add((char) i);
        }
        for (int i = 35; i < 39; i++) {
            validch.add((char) i);
        }
        validch.add((char) 64);
        Collections.shuffle(validch);
    }
 
    public char randChar() {
        return (char) this.validch.get(srand.nextInt(this.validch.size()));
    }
 
    public static void main(String[] args) throws NoSuchAlgorithmException, 
        NoSuchProviderException, UnsupportedEncodingException {
 
        PasswordGenerator pg = new PasswordGenerator();
 
        StringBuilder sb = new StringBuilder();
        for (int j = 0; j < 10; j++) { // Generate 10 passwords
            for (int i = 0; i < 10; i++) { // Passwords are 10 characters long
                sb.append(pg.randChar());
            }
            System.out.println(sb.toString());
            sb.setLength(0);
        }
 
    }
 
}

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202302/16756006135656.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者