用于生成简单的随机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();
}
}否则 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));
}
}