根据单词长度加密文本的程序

Program to Encrypt Text Depending on the Length of a Word

我想制作一个程序来根据文本的长度加密文本。例如,如果单词是 "test",那么因为 "test" 有 4 个字母,它会将单词中的每个字母移动到下一个第 4 个字母。这将使 "test" 变为 "xiwx"。我已经完成了我的计划的一部分。在这里:

public static void main(String[] args){
    string.toLowerCase();
    int charPos = 0;
    int length = 0;

    for(int i = 0; i < string.length(); i++){
        charPos = 0;
        length = 0;
        while(!(string.charAt(i) == ' ')){
            length = charPos;
            charPos++;
        }
        length--;
        for(int j = 0; j<=length; j++){
            char cha =string.charAt(i);

            //HERE IS WHERE THE CHAR ADDING WILL HAPPEN

        }
        i++;

    }

}//end

有一种更简单的方法来实现这种类型的加密,只需使用一个循环即可。

加密:

String str = "test"; // normal string

String encryptedStr = ""; // start empty then add characters

for (char ch : str.toCharArray()) // loop through each character in str

    encryptedStr += (char) (ch + str.length()); // need to cast addition to char

System.out.println("Encrypted String: " + encryptedStr); // output encrypted string

所以我的想法是使用 length() 方法来获取字符串的长度,因为这是您要添加到每个字符的长度。因为每个字符都有一个 ASCII 整数值,我们可以对它们执行数学运算(所以在这种情况下,将长度添加到每个字符)。然后,由于结果将是一个整数,我们必须向结果添加一个 (char) 转换以将其转换回字符。然后我们可以将这个字符连接到空字符串。如果我们对原始字符串中的每个字符都这样做(通过使用 for 循环并将字符串转换为 char 数组),我们最终将在末尾得到加密字符串。

同样的想法适用于解密:

String str = "xiwx"; // encrypted string

String decryptedStr = ""; // start empty then add characters

for (char ch : str.toCharArray()) // loop through each character in str

    decryptedStr += (char) (ch - str.length()); // need to cast subtraction to char

System.out.println("Decrypted String: " + decryptedStr); // output decrypted string

除了我们从每个字符中减去长度。

希望对您有所帮助:)