Java编写的随机密码生成器源码

最近用Java写的一个密码生成器,实现方法是首先定义一个候选字符数组,并通过java.util.Random中的nextInt()方法生成一个随机整数做为候选字符数组的键,来实现随机取出字符的功能,详细程序请见下面的源代码:

package passwordgenerate;
 
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Random;
 
/**
 * 密码生成器
 * @author Jason jasonwei06@hotmail.com
 * @version 1.0
 */
public class Main {
    int intPassLength = 0; //密码长度
    String arrayString[] = new String[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();
            }
        }
 
        //数字
        Main.arrayString[0] = "0";
        Main.arrayString[1] = "1";
        Main.arrayString[2] = "2";
        Main.arrayString[3] = "3";
        Main.arrayString[4] = "4";
        Main.arrayString[5] = "5";
        Main.arrayString[6] = "6";
        Main.arrayString[7] = "7";
        Main.arrayString[8] = "8";
        Main.arrayString[9] = "9";
        //小写字母
        Main.arrayString[10] = "a";
        Main.arrayString[11] = "b";
        Main.arrayString[12] = "c";
        Main.arrayString[13] = "d";
        Main.arrayString[14] = "e";
        Main.arrayString[15] = "f";
        Main.arrayString[16] = "g";
        Main.arrayString[17] = "h";
        Main.arrayString[18] = "i";
        Main.arrayString[19] = "j";
        Main.arrayString[20] = "k";
        Main.arrayString[21] = "l";
        Main.arrayString[22] = "m";
        Main.arrayString[23] = "n";
        Main.arrayString[24] = "o";
        Main.arrayString[25] = "p";
        Main.arrayString[26] = "q";
        Main.arrayString[27] = "r";
        Main.arrayString[28] = "s";
        Main.arrayString[29] = "t";
        Main.arrayString[30] = "u";
        Main.arrayString[31] = "v";
        Main.arrayString[32] = "w";
        Main.arrayString[33] = "x";
        Main.arrayString[34] = "y";
        Main.arrayString[35] = "z";
        //大写字母
        Main.arrayString[36] = "A";
        Main.arrayString[37] = "B";
        Main.arrayString[38] = "C";
        Main.arrayString[39] = "D";
        Main.arrayString[40] = "E";
        Main.arrayString[41] = "F";
        Main.arrayString[42] = "G";
        Main.arrayString[43] = "H";
        Main.arrayString[44] = "I";
        Main.arrayString[45] = "J";
        Main.arrayString[46] = "K";
        Main.arrayString[47] = "L";
        Main.arrayString[48] = "M";
        Main.arrayString[49] = "N";
        Main.arrayString[50] = "O";
        Main.arrayString[51] = "P";
        Main.arrayString[52] = "Q";
        Main.arrayString[53] = "R";
        Main.arrayString[54] = "S";
        Main.arrayString[55] = "T";
        Main.arrayString[56] = "U";
        Main.arrayString[57] = "V";
        Main.arrayString[58] = "W";
        Main.arrayString[59] = "X";
        Main.arrayString[60] = "Y";
        Main.arrayString[61] = "Z";
 
        String strPassword = Main.doGenerate(Main.intPassLength);
        System.out.print("本次生成的密码为:" + strPassword);
    }
}

阳光部落原创,更多内容请访问 http://www.sunbloger.com/

相关内容:

发表评论