用於產生簡單的隨機java產生隨機數,大小+數字。
複製程式碼如下:
包密碼;
導入 java.util.Random;
公共類別 pwdGen {
私有隨機 rdseed=new Random();
/**
*@參數
*length密碼長度;
*@參數
*lettersboolean 非大寫字母組合控制;
*@參數
*letters_capiboolean 大寫字母組合控制;
*@參數
*numbersboolean 大寫字母組合控制;
*/
public String getpwd(int length,布林字母,布林字母_capi,布林數字){
字串資源=“”;
隨機rd=this.rdseed;
而(長度-->0){
字符_1dgt=0;
if(字母&&letters_capi&&數字){
int _key=rd.nextInt(3);
如果(2==_鍵){
_1dgt=get_L();
}否則如果(1==_key){
_1dgt=get_L_C();
}否則如果(0==_key){
_1dgt=get_N();
}
}否則 if(字母&&letters_capi&&!數字){
int _key=rd.nextInt(2);
如果(1==_鍵){
_1dgt=get_L();
}否則如果(0==_key){
_1dgt=get_L_C();
}
}else if(!letters&&letters_capi&&numbers){
int _key=rd.nextInt(2);
如果(1==_鍵){
_1dgt=get_N();
}否則如果(0==_key){
_1dgt=get_L_C();
}
}否則 if(字母&&!letters_capi&&數字){
int _key=rd.nextInt(2);
如果(1==_鍵){
_1dgt=get_L();
}否則如果(0==_key){
_1dgt=get_N();
}
}否則 if(字母&&!letters_capi&&!數字){
_1dgt=get_L();
}else if(!letters&&!letters_capi&&numbers){
_1dgt=get_N();
}else if(!letters&&letters_capi&&!numbers){
_1dgt=get_L_C();
}別的{
資源=空;
休息;
}
res+=_1dgt;
}
返回資源;
}
私有字元 get_L_C(){
隨機rd=this.rdseed;
int _dgt=(rd.nextInt(26)+65);
返回(字元)_dgt;
}
私有字元 get_N(){
隨機rd=this.rdseed;
int _dgt=(rd.nextInt(10)+48);
返回(字元)_dgt;
}
私有字元 get_L(){
隨機rd=this.rdseed;
int _dgt=(rd.nextInt(26)+97);
返回(字元)_dgt;
}
私有字元 get_S(){
隨機rd=this.rdseed;
int _dgt=(rd.nextInt(14)+33);
返回(字元)_dgt;
}
公共靜態無效主(字串[] args){
pwdGen 測試= new pwdGen();
int testct=1000000;
長開始=System.nanoTime();
和(testct-->0){
test.getpwd(10, 真, 真, 真);
}
長結束= System.nanoTime();
System.out.println(((double)(end-start))/(1000000000));
System.out.println(test.getpwd(10, true, true, true));
}
}