zoukankan      html  css  js  c++  java
  • 凯撒密文问题

    问题的前景:

    设计思想:

    这个问题主要分为两大块:其一,加密问题:加密就是要将自己想要保护的文件内容进行变化使其不易泄露,在这个问题里的文件内容变化就是要将输入的字符的对应的ASCII进行加三,然后再将它转换为字符串输出即可,在代码的方法体中就要将输入的字符串转化为数组(to.CharArray());然后再将存储字符串的数组进行强制转换转换为整形的数组,最后将整形的数组进行加三的操作,最后再转化为字符数组即可。其二,就是解密问题,解密就是将输入的字符串转换为字符数组,然后字符数组转化为整形的数组,将整形的数组进行减三的操作就行,然后再转化为字符数组进行输出即可。

    程序流程图:

    源代码:

    //凯瑟密码    信1605-3 赵春辉 20163464
    import java.util.Scanner;
    public class Caserkey
    {
    	int list2[]=new int[10];//定义一个长度为10的整形的数组。
    	int list4[]=new int[10];//
    	int  setkey(String qwe)//创建一个含参的setkey方法
    	{
    		char list1[]=qwe.toCharArray();//将输入的字符串转化在数组中
    		for(int i=0;i<list1.length;i++)
    			 list2[i]=list1[i];//将char类型的数组转化为int型的数组
    		for(int i=0;i<list1.length;i++)
    		    list1[i]=(char) (list2[i]+3);//将int型的数组进行加密(+3操作);
    		System.out.println(list1);//将加密以后的密文输出出来
    		return 1;
    	}
    	int  getkey(String asd)//创建的有返回值的getkey方法
    	{
    		char list3[]=asd.toCharArray();//将输入的密文转化为数组存储
    		for(int i=0;i<list3.length;i++)
    			list4[i]=list3[i];//将char类型的数组转化为int型的数组
    		for(int i=0;i<list3.length;i++)
    			list3[i]=(char)(list4[i]-3);//将int型数组的密文进行解密操作(-3)
    		
    		System.out.println(list3);//将加密以后的密文输出出来
    		return 1;
    	}
    	public static void main(String args[])
    	{
    		Caserkey caser=new Caserkey();
    		Scanner scanner=new Scanner(System.in);
    		System.out.println("please chose 1(setkey) or chose 0(getkey):");
    		int chose=scanner.nextInt();
    		if(chose==1)
    		{
    			System.out.println("enter your setkey");
    			String string1=scanner.next();
    			caser.setkey(string1);
    		}
    		else
    			if(chose==0)
    			{
    				System.out.println("pease enter your miwen:");
    				String string2=scanner.next();
    				caser.getkey(string2);
    			}
    			else
    				System.out.println("sorry,you input error!");
    	}
    
    }
    

      

    结果截图:

     

  • 相关阅读:
    luogu P3959 宝藏
    hdu4035 Maze
    [hdu2899]Strange fuction
    luogu4407 [JSOI2009]电子字典 字符串hash + hash表
    SPOJ6717 Two Paths 树形dp
    luogu4595 [COCI2011-2012#5] POPLOCAVANJE 后缀自动机
    后缀数组
    luoguP1659 [国际集训队]拉拉队排练 manacher算法
    luoguP4555 [国家集训队]最长双回文串 manacher算法
    CF17E Palisection 差分+manacher算法
  • 原文地址:https://www.cnblogs.com/zhaochunhui/p/7730003.html
Copyright © 2011-2022 走看看