用来生成简单的随机java生成随机数,大小+数字。没特符
复代码代码如下:
패키지 비밀번호;
import java.util.Random;
공개 클래스 pwdGen {
개인 무작위 rdseed=new Random();
/**
*@param
*length비밀번호 길이;
*@param
*lettersboolean 대문자가 아닌 문자 조합 제어;
*@param
*letters_capiboolean 대문자 조합 제어;
*@param
*numbersboolean 대문자 조합 제어;
*/
public String getpwd(int 길이, 부울 문자, 부울 문자_capi, 부울 숫자){
문자열 res="";
무작위 rd=this.rdseed;
동안(길이-->0){
char_1dgt=0;
if(문자&&letters_capi&&숫자){
int _key=rd.nextInt(3);
if(2==_key){
_1dgt=get_L();
}그렇지 않은 경우(1==_key){
_1dgt=get_L_C();
}그렇지 않은 경우(0==_key){
_1dgt=get_N();
}
}else if(letters&&letters_capi&&!numbers){
int _key=rd.nextInt(2);
if(1==_key){
_1dgt=get_L();
}그렇지 않은 경우(0==_key){
_1dgt=get_L_C();
}
}else if(!letters&&letters_capi&&numbers){
int _key=rd.nextInt(2);
if(1==_key){
_1dgt=get_N();
}그렇지 않은 경우(0==_key){
_1dgt=get_L_C();
}
}else if(문자&&!letters_capi&&숫자){
int _key=rd.nextInt(2);
if(1==_key){
_1dgt=get_L();
}그렇지 않은 경우(0==_key){
_1dgt=get_N();
}
}else 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();
}또 다른{
입술=널;
부서지다;
}
해상도+=_1dgt;
}
해상도를 반환 ;
}
개인 문자 get_L_C(){
무작위 rd=this.rdseed;
int _dgt=(rd.nextInt(26)+65);
return (char)_dgt;
}
개인 문자 get_N(){
무작위 rd=this.rdseed;
int _dgt=(rd.nextInt(10)+48);
return (char)_dgt;
}
개인 문자 get_L(){
무작위 rd=this.rdseed;
int _dgt=(rd.nextInt(26)+97);
return (char)_dgt;
}
개인 문자 get_S(){
무작위 rd=this.rdseed;
int _dgt=(rd.nextInt(14)+33);
return (char)_dgt;
}
공개 정적 무효 메인(String[] args) {
pwdGen 테스트= new pwdGen();
int testct=1000000;
긴 시작=System.nanoTime();
동안(testct-->0){
test.getpwd(10, true, true, true);
}
긴 끝= System.nanoTime();
System.out.println(((double)(end-start))/(1000000000));
System.out.println(test.getpwd(10, true, true, true));
}
}