如何用java破译密码_passwordcreater.java

/*说明:产生下一个密码:使用:每调用一次next()方法,就产生并返回下一个密码的字符串*/public class PasswordCreater{private char password[] = null;private KeyCreater kc[] = null;private int length;//构造初始化属性public PasswordCreater(){this.length = 1;this.creater();}//生成下一个密码public String next(){//首先判断是否要增加密码长度(避免空指向异常!)if(this.further()){this.length++;//执行增加密码的长度this.creater();//实例化这个密码所要的KeyCreater数组和char数组!}//生成一个新密码(存在password数组中)this.createPassword();//返回这个密码(以字符串形式)return new String(this.password);}//判断是否要增加密码的长度public boolean further(){boolean flag = true;//每个位都要求进位时才执行进位for(int i=0; iif(!kc[i].isEnd()){flag = false;break;//只要有一个不要进位,就跳出循环,返回false;}}return flag;}//实例化密匙生成器(增加密码的长度)public void creater(){//实例化这个密码所需要的KeyCreater数组和char数组!System.out.println("增加密码长度======>>>>\t" + this.length);KeyCreater keyc[] = new KeyCreater[this.length];char pwd[] = new char[this.length];for(int i=0; ikeyc[i] = new KeyCreater();}this.kc = keyc;this.password = pwd;}//产生新密码public void createPassword(){for(int i=0; ithis.password[i] = kc[i].getKey();}for(int i=0; ikc[i].next();//将密码下移一位if(!kc[i].willEnd()){//判断是否要进位break;//不要进位则跳出循环}else{kc[i].setWillEnd();//进位则修改回kc[i]对象的willEnd值为false;}}}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值