1

嗨,我在下面有这段代码(代码 1),它应该反转另一个代码(代码 2)的效果,但它在任何一个代码中都不能正常工作。有人可以帮我弄这个吗?:)

代码 2 获取一个文本并获取每个字母,用一个数字对其进行乘以,然后用它的模数 29 找到其余部分。这个新数字就是加密的字母。然后我想用代码 1 来扭转这一点。

我的字母表 = a, b, c, ..., æ, ø, å = 29 个字母

具有因子 1、2 和 3 的示例“您”变为

(25*1)%29 = 25

(15*2)%29 = 1

(21*3)%29 = 5

“耶”

然后要反转它,我取新字母,将其除以因子并检查是否是没有小数的数字。如果不是,那么我将 29 添加到 lettervalue 并重新开始。

再次以 1、2 和 3 为例

“耶”

(25/1)%29 = 25

(1/2)%29 = 0,5 然后加 29

(30/2)%29 = 15

(5/3)%29 = 1,66 然后加 29

(34/3)%29 = 11,33 然后加 29

(63/3)%29 = 21

“你”

代码 1

String initialString = yourString.getText().toString();
        char[] chars = initialString.toCharArray();
        for (int i = 1; i <= chars.length; i++) {
            if (chars[i-1] == ' '){
                continue;   
            }
            C = Integer.valueOf(faktorA);
            if ( i%2 ==0 ) C = Integer.valueOf(faktorB);
            if ( i%3 ==0 ) C = Integer.valueOf(faktorE);

            chars[i-1] = characters.get((characters.indexOf(chars[i-1]) / C)%29);

            if(chars[i-1]%1 != 0){
                chars[i-1] = (char) (chars[i-1] * C + 29);
                chars[i-1] = characters.get((characters.indexOf(chars[i-1]) / C)%29);
            }
        }

代码 2

    String initialString = yourString.getText().toString();
        char[] chars = initialString.toCharArray();
        for (int i = 1; i <= chars.length; i++) {
            if (chars[i-1] == ' '){
                continue;   
            }
            C = Integer.valueOf(faktorA);
            if ( i%2 ==0 ) C = Integer.valueOf(faktorB);
            if ( i%3 ==0 ) C = Integer.valueOf(faktorE);

            chars[i-1] = characters.get((characters.indexOf(chars[i-1]) * C)%29);
        }
4

0 回答 0