Java代码如何创建随机密码呢?
下文笔者讲述使用java代码创建随机密码的方法分享,如下所示
由大写字母AZ,小写字母az,数字0-9和符号#,$,%,&和@组成
随机密码创建方法
使用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); } } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。