Java 凯撒密码工程
我明天有个项目要交,但我还是搞不清楚。在阅读了有关凯撒密码和加密的在线教科书后,我仍然不知道该怎么办。我是编程新手,所以大部分代码都不是我能胜任的,然而这个项目似乎太超前了,学期只持续了三周 以下是说明: 您的任务是实现凯撒密码。密码必须包含两个命令行参数 未加密的消息和k,移位量。您的代码将未加密的消息转换为 通过逐个移动每个字母进行加密。然后,它应该将新的加密文件打印到屏幕上 消息在转换期间,大写字母应保持大写,小写字母应保持较低 案例此外,请确保完全不更改空间。如果你能解释其他标点符号的话就不行了 被改变,这被认为是“超越”Java 凯撒密码工程,java,encryption,Java,Encryption,我明天有个项目要交,但我还是搞不清楚。在阅读了有关凯撒密码和加密的在线教科书后,我仍然不知道该怎么办。我是编程新手,所以大部分代码都不是我能胜任的,然而这个项目似乎太超前了,学期只持续了三周 以下是说明: 您的任务是实现凯撒密码。密码必须包含两个命令行参数 未加密的消息和k,移位量。您的代码将未加密的消息转换为 通过逐个移动每个字母进行加密。然后,它应该将新的加密文件打印到屏幕上 消息在转换期间,大写字母应保持大写,小写字母应保持较低 案例此外,请确保完全不更改空间。如果你能解释其他标点符号的话
我该如何开始这个项目,你能向有3周编码经验的人解释一下吗。这是家庭作业,所以你可能不会得到很多完整的答案。但这里有一些一般性的指导: 1-提到了空格。因此,您需要将输入作为单个字符串,然后将其分解(拆分)为一个单词数组。这将是您滚动浏览的主阵列,当循环完成时,您的程序完成 2-现在需要获取数组中的元素(即单个单词)并按每个字母处理它们。您需要循环遍历每个单词的字符并应用移位(k)
3-一旦完成,你需要“重新组合”你的短语,但在你的主数组中的每个单词后添加一个空格。将其作为“加密”信息输出到屏幕上。这是家庭作业,因此您可能不会得到很多完整的答案。但这里有一些一般性的指导: 1-提到了空格。因此,您需要将输入作为单个字符串,然后将其分解(拆分)为一个单词数组。这将是您滚动浏览的主阵列,当循环完成时,您的程序完成 2-现在需要获取数组中的元素(即单个单词)并按每个字母处理它们。您需要循环遍历每个单词的字符并应用移位(k)
3-一旦完成,你需要“重新组合”你的短语,但在你的主数组中的每个单词后添加一个空格。将其作为“加密”消息输出到屏幕。创建一个包含要加密字符的数组(顺序无关紧要)。在java中查找
%
运算符,并使用它为输入字符串中的每个项计算加密值
伪代码示例
您可能会发现该类很有用。创建一个包含要加密的字符的数组(顺序无关紧要)。在java中查找
%
运算符,并使用它为输入字符串中的每个项计算加密值
伪代码示例
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进行解密李>
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进行解密李>
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));
}
}