📄 caesar.java
字号:
import java.io.InputStream;
import java.io.IOException;
public class Caesar
{
public static void mb_echo(InputStream in)
{
int k1=3,k2=5,m=0,r=0; //设定密钥
System.out.println("请输入明文,回车后即显密文:");
try
{
while(true)
{
int i=in.read(); //得到键盘输入
if(i==-1)
return;
if(i==0x0D) //在键盘键入回车时
System.out.println("[密文]");
char c=(char)i;
switch(c)
{
case'a':case'A':m=0;break;
case'b':case'B':m=1;break;
case'c':case'C':m=2;break;
case'd':case'D':m=3;break;
case'e':case'E':m=4;break;
case'f':case'F':m=5;break;
case'g':case'G':m=6;break;
case'h':case'H':m=7;break;
case'i':case'I':m=8;break;
case'j':case'J':m=9;break;
case'k':case'K':m=10;break;
case'l':case'L':m=11;break;
case'm':case'M':m=12;break;
case'n':case'N':m=13;break;
case'o':case'O':m=14;break;
case'p':case'P':m=15;break;
case'q':case'Q':m=16;break;
case'r':case'R':m=17;break;
case's':case'S':m=18;break;
case't':case'T':m=19;break;
case'u':case'U':m=20;break;
case'v':case'V':m=21;break;
case'w':case'W':m=22;break;
case'x':case'X':m=23;break;
case'y':case'Y':m=24;break;
case'z':case'Z':m=25;break;
}
r=(k1*m+k2)%26; //加密
char ch='a';
if(i>96&&i<123) //若明文键入的是小写字母,则密文也显示小写字母
{
switch(r)
{
case 0:ch='a';break;
case 1:ch='b';break;
case 2:ch='c';break;
case 3:ch='d';break;
case 4:ch='e';break;
case 5:ch='f';break;
case 6:ch='g';break;
case 7:ch='h';break;
case 8:ch='i';break;
case 9:ch='j';break;
case 10:ch='k';break;
case 11:ch='l';break;
case 12:ch='m';break;
case 13:ch='n';break;
case 14:ch='o';break;
case 15:ch='p';break;
case 16:ch='q';break;
case 17:ch='r';break;
case 18:ch='s';break;
case 19:ch='t';break;
case 20:ch='u';break;
case 21:ch='v';break;
case 22:ch='w';break;
case 23:ch='x';break;
case 24:ch='y';break;
case 25:ch='z';break;
}
}
else if(i>64&&i<91) //若明文键入的是大写字母,密文也显示是大写字母
{
switch(r)
{
case 0:ch='A';break;
case 1:ch='B';break;
case 2:ch='C';break;
case 3:ch='D';break;
case 4:ch='E';break;
case 5:ch='F';break;
case 6:ch='G';break;
case 7:ch='H';break;
case 8:ch='I';break;
case 9:ch='J';break;
case 10:ch='K';break;
case 11:ch='L';break;
case 12:ch='M';break;
case 13:ch='N';break;
case 14:ch='O';break;
case 15:ch='P';break;
case 16:ch='Q';break;
case 17:ch='R';break;
case 18:ch='S';break;
case 19:ch='T';break;
case 20:ch='U';break;
case 21:ch='V';break;
case 22:ch='W';break;
case 23:ch='X';break;
case 24:ch='Y';break;
case 25:ch='Z';break;
}
}
else //若明文输入的是数字或标点等字符,则显示原字符
ch=c;
System.out.print(ch);
}
}
catch(IOException e)
{
System.err.println(e);
}
}
public static void main(String args[])
{
mb_echo(System.in);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -