⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 caesar.java

📁 凯撒密码扩展算法
💻 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 + -