Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 凯撒密码工程_Java_Encryption - Fatal编程技术网

Java 凯撒密码工程

Java 凯撒密码工程,java,encryption,Java,Encryption,我明天有个项目要交,但我还是搞不清楚。在阅读了有关凯撒密码和加密的在线教科书后,我仍然不知道该怎么办。我是编程新手,所以大部分代码都不是我能胜任的,然而这个项目似乎太超前了,学期只持续了三周 以下是说明: 您的任务是实现凯撒密码。密码必须包含两个命令行参数 未加密的消息和k,移位量。您的代码将未加密的消息转换为 通过逐个移动每个字母进行加密。然后,它应该将新的加密文件打印到屏幕上 消息在转换期间,大写字母应保持大写,小写字母应保持较低 案例此外,请确保完全不更改空间。如果你能解释其他标点符号的话

我明天有个项目要交,但我还是搞不清楚。在阅读了有关凯撒密码和加密的在线教科书后,我仍然不知道该怎么办。我是编程新手,所以大部分代码都不是我能胜任的,然而这个项目似乎太超前了,学期只持续了三周

以下是说明: 您的任务是实现凯撒密码。密码必须包含两个命令行参数 未加密的消息和k,移位量。您的代码将未加密的消息转换为 通过逐个移动每个字母进行加密。然后,它应该将新的加密文件打印到屏幕上 消息在转换期间,大写字母应保持大写,小写字母应保持较低 案例此外,请确保完全不更改空间。如果你能解释其他标点符号的话就不行了 被改变,这被认为是“超越”


我该如何开始这个项目,你能向有3周编码经验的人解释一下吗。

这是家庭作业,所以你可能不会得到很多完整的答案。但这里有一些一般性的指导:

1-提到了空格。因此,您需要将输入作为单个字符串,然后将其分解(拆分)为一个单词数组。这将是您滚动浏览的主阵列,当循环完成时,您的程序完成

2-现在需要获取数组中的元素(即单个单词)并按每个字母处理它们。您需要循环遍历每个单词的字符并应用移位(k)


3-一旦完成,你需要“重新组合”你的短语,但在你的主数组中的每个单词后添加一个空格。将其作为“加密”信息输出到屏幕上。

这是家庭作业,因此您可能不会得到很多完整的答案。但这里有一些一般性的指导:

1-提到了空格。因此,您需要将输入作为单个字符串,然后将其分解(拆分)为一个单词数组。这将是您滚动浏览的主阵列,当循环完成时,您的程序完成

2-现在需要获取数组中的元素(即单个单词)并按每个字母处理它们。您需要循环遍历每个单词的字符并应用移位(k)


3-一旦完成,你需要“重新组合”你的短语,但在你的主数组中的每个单词后添加一个空格。将其作为“加密”消息输出到屏幕。

创建一个包含要加密字符的数组(顺序无关紧要)。在java中查找
%
运算符,并使用它为输入字符串中的每个项计算加密值

伪代码示例

  • 在数组中查找普通索引(处理大小写和特殊字符)
  • 使用array.length%k计算偏移索引
  • 使用偏移量索引查找新的“加密”值

  • 您可能会发现该类很有用。

    创建一个包含要加密的字符的数组(顺序无关紧要)。在java中查找
    %
    运算符,并使用它为输入字符串中的每个项计算加密值

    伪代码示例

  • 在数组中查找普通索引(处理大小写和特殊字符)
  • 使用array.length%k计算偏移索引
  • 使用偏移量索引查找新的“加密”值
  • 您可能会发现该类很有用。

    步骤1 创建你的字母表

    char[] alphabet = {'A', 'B', 'C', ... , 'X', 'Y', 'Z'};
    
    步骤2

    移动你的明文。假设args[0]是原始消息,args[1]是从命令行传入的班次

    char[] plaintext = args[0].toCharArray();
    int shift = args[1];
    
    for(int i = 0; i < plaintext.length; i++) {
        for(int j = 0; j < alphabet.length; j++) {
            if(alphabet[j] == plaintext[i]) {
                plaintext[i] = alphabet[(j + shift) % alphabet.length];
            }
        }
    }
    
    步骤1 创建你的字母表

    char[] alphabet = {'A', 'B', 'C', ... , 'X', 'Y', 'Z'};
    
    步骤2

    移动你的明文。假设args[0]是原始消息,args[1]是从命令行传入的班次

    char[] plaintext = args[0].toCharArray();
    int shift = args[1];
    
    for(int i = 0; i < plaintext.length; i++) {
        for(int j = 0; j < alphabet.length; j++) {
            if(alphabet[j] == plaintext[i]) {
                plaintext[i] = alphabet[(j + shift) % alphabet.length];
            }
        }
    }
    

    您需要查看:

    • 从命令行读取参数的Scanner类
    • 类将字符串转换为单独的字符数组元素
    • 递增和递减字符以添加3进行加密,或减去3进行解密
    请参见有关递增字符的本教程:

    对于一个初级班来说,这是一个艰难的项目

    看看我制作的这个小程序,它展示了如何将一个字符从小写字母a增加到小写字母b

     public class alphabet { 
           public static void main(String[] args) { 
                char a = 'a';
                System.out.println("a currently equals: " + a);
                System.out.println("++a now equals: " + (++a));
    
    
           }
    
     }
    

    您需要查看:

    • 从命令行读取参数的Scanner类
    • 类将字符串转换为单独的字符数组元素
    • 递增和递减字符以添加3进行加密,或减去3进行解密
    请参见有关递增字符的本教程:

    对于一个初级班来说,这是一个艰难的项目

    看看我制作的这个小程序,它展示了如何将一个字符从小写字母a增加到小写字母b

     public class alphabet { 
           public static void main(String[] args) { 
                char a = 'a';
                System.out.println("a currently equals: " + a);
                System.out.println("++a now equals: " + (++a));
    
    
           }
    
     }