两个密钥的解密方法

时间:2018-08-12 15:57:51

标签: java

我正在为CaesarCipher类的两个密钥开发一种解密方法。我有一个密钥的解密方法,但是当我使用两个密钥时,我迷失了要做的事情。如何修复两个密钥的解密方法?四个代表字母“ e”,使所有内容都与字母“ e”相关。 26代表字母表中字母的数量。 下面是我用于一个密钥的解密方法:

public String decrypt(String encrypted){
    CaesarCipher23 cc = new CaesarCipher23();
    int[] freqs = countLetters(encrypted);
    int maxDex=indexOfMax(freqs);
    int dkey=maxDex-4;

    if(maxDex<4){
        dkey=26-(4-maxDex);
    }

    return cc.encrypt(encrypted,26-dkey);

}

这是我为两种密钥解密方法所开始的:

public String decryptTwoKeys(String encrypted){
     String firstHalf=halfOfString(encrypted,0);
     String secondHalf=halfOfString(encrypted,1);
     int key1=getKey(firstHalf);
     int key2= getKey(secondHalf);
     System.out.println("this is key1"+"\t"+ key1+"this is key2"+"\t"+key2); 
     CaesarCipher23 cc = new CaesarCipher23();
     return cc.encrptyTwoKeys(encrypted,key1,key2);
    }

我希望能收到有关如何改进代码的反馈。我是Java的初学者,我正在尝试找到解决此问题的更好方法。咨询会很棒。

1 个答案:

答案 0 :(得分:0)

我要做的就是修复getKey方法。以下是我所做的更改:

with open('settings.json','r') as settings_file:
    settings = json.load(settings_file)
btn2.state = settings['btn2_state']