不定长度的密码生成方法

可以自由生成任意长度的密码。
当遍历完当前长度的所有密码后,会自行递归遍历更高长度的密码。
具体可以干啥,懂得都懂。

public static void main(String[] args) {


int number=0;

String password ="";//程序终止后可以用上次运行的结果修改此赋值后继续破解。
do {
password = CreateNextPassword(password);

System.out.println (password);
/*
在这里添加你想要增加的检测代码。


*/
}while (number ++>99999){break ;}//可以通过次数来限制。
}

    public String  CreateNextPassword(String Currentpassword){
    
        char[] CharRange= "1234567890".toCharArray(); //字符串可以更改为你预估的破解范围。
        if (Currentpassword ==""){
            Currentpassword = CharRange[0]+"";
        }
        char[] CurrentpasswordGroup =    Currentpassword.toCharArray();
        int CurrentChange =  CurrentpasswordGroup.length-1;
        do{
            char ChangeChar =    ChangeToNext( CurrentpasswordGroup[CurrentChange], CharRange);

            CurrentpasswordGroup[CurrentChange] = ChangeChar;
            if (ChangeChar==CharRange[0]){
                CurrentChange --;
                //    System.out.println("错位 "+String.valueOf(CurrentpasswordGroup)+            "   "+     CurrentChange);
                if (CurrentChange==-1){
                    return CharRange[0] +String.valueOf(CurrentpasswordGroup);
                }
                // ChangeToNext();
            }else{
                break;
            }
        }while(true);
        return     String.valueOf(CurrentpasswordGroup);
    }
    private char ChangeToNext (char CurrentChar ,char [] CharRange) {
        for (int i = 0; i < CharRange.length; i++) {
            if (CurrentChar==CharRange[i]) {
                if (i == CharRange.length - 1) {
                    CurrentChar = CharRange[0];
                }else{
                    CurrentChar = CharRange[i+1];
                }
                break;
            }else{
                if  (CurrentChar==CharRange[i]) {//不合规的直接改成原始数据
                    if (i == CharRange.length - 1) {
                        CurrentChar = CharRange[0];
                    }
                }
            }
        }
        return CurrentChar;
    }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值