前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我用Java写的PasswordGenerate改进版源码

我用Java写的PasswordGenerate改进版源码

作者头像
魏杰
发布2022-12-23 16:58:58
3670
发布2022-12-23 16:58:58
举报
Java logo
Java logo

前段时间用Java编写过一个名叫PasswordGenerate的密码生成器,最近看到别人写的一段PHP代码,从中受到启发,于是对我的这个密码生成器进行了改进,优化了不少代码行,详细请见下面的源代码:

代码语言:javascript
复制
package passwordgenerate;
 
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Random;
 
/**
 * 密码生成器
 * @author Jason jasonwei06@hotmail.com
 * @version 2.0
 */
public class Main {
    int intPassLength = 0; //密码长度
    char arrayString[] = new char[62]; //候选字符数组
 
    /**
     * 生成密码
     * @param intPassLength 密码长度
     * @return
     */
    public String doGenerate(final int intPassLength) {
        int intTemp;
        String strPassword = "";
        Random rand = new Random();
        for(int i = 0; i < intPassLength; i++) {
            intTemp = rand.nextInt(63);
            strPassword += this.arrayString[intTemp];
        }
        return strPassword;
    }
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        final Main Main = new Main();
        //确定密码长度
        while(true) {
            System.out.print("请输入密码长度[8-64]:");
            final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String inputThreadAmount = null;
            try {
                inputThreadAmount = br.readLine();
                if(inputThreadAmount.matches("^[0-9]+$")) {
                    Main.intPassLength = Integer.parseInt(inputThreadAmount);
                    if(Main.intPassLength >= 8 && Main.intPassLength <= 64) {
                        break;
                    } else {
                        System.out.println("长度超出范围,请输入8至64之间的数字!");
                    }
                } else {
                    System.out.println("输入格式有误!请输入8至64之间的数字!");
                }
            } catch (final Exception e) {
                e.getMessage();
            }
        }
 
        int j = 0;
        for(int i = 48; i <= 57; i++) { //0-9
            Main.arrayString[j] = (char)i;
            j++;
        }
        for(int i = 65; i <= 90; i++) { //A-Z
            Main.arrayString[j] = (char)i;
            j++;
        }
        for(int i = 97; i <= 122; i++) { //a-z
            Main.arrayString[j] = (char)i;
            j++;
        }
 
        String strPassword = Main.doGenerate(Main.intPassLength);
        System.out.print("本次生成的密码为:" + strPassword);
    }
}

阳光部落原创

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档