电话传递数据加密

帅比萌擦擦* 提交于 2020-04-03 05:22:34

题目:
某个公司采用公用电话传递数据,
数据是四位的整数,在传递过程中是加密的,加密规则如下:
每位数字都加上5,
然后用和除以10的余数代替该数字,
再将第一位和第四位交换,第二位和第三位交换。

 

import java.util.*;
public class Test{  
        public void jie(int num){
            int a,b,c,d;
            a=num/1000;
            b=num/100-a*10;
            c=num/10-a*100-b*10;
            d=num%10;
            int[] s = {a,b,c,d};
            int temp=0;
            temp=s[0];
            s[0]=s[3];
            s[3]=temp;
            temp=s[1];
            s[1]=s[2];
            s[2]=temp;
            for(int i=0;i<4;i++){
                if(s[i]<4)
                s[i]=s[i]+10-5; 
                else
                s[i]=s[i]-5;
            }
            System.out.print("\t\t\t解密过后的数字为: ");
            for(int i : s)
            System.out.print(i);
        }
        public void add(int num){
            int a,b,c,d;
            a=num/1000;
            b=num/100-a*10;
            c=num/10-a*100-b*10;
            d=num%10;
            int[] s = {a,b,c,d};
            for(int i=0;i<4;i++){
                s[i]=(s[i]+5)%10;
            }
            int temp=0;
            temp=s[0];
            s[0]=s[3];
            s[3]=temp;
            temp=s[1];
            s[1]=s[2];
            s[2]=temp;
            System.out.print("\t\t\t加密过后的数字为: ");
            for(int i : s)
            System.out.print(i);
        }
        public static void main(String args[]){
        System.out.println("\t\t\tXX公司加密解密程序");
        System.out.println("\t\t\t加密请扣1");
        System.out.println("\t\t\t解密请扣0");
        Scanner scan = new Scanner(System.in);
        int n=0;
        int num=0;
        do{
        System.out.print("\t\t\t请扣: ");
        n = scan.nextInt();
        }while(n!=1&&n!=0);
        do{
        System.out.print("\t\t\t输入要操作的数字: ");
        num = scan.nextInt();
        }while(String.valueOf(num).length()!=4);
        if(n==1)
        new Test().add(num);
        else
        new Test().jie(num);
    }
    }


/*---运行结果---
    C:\>java Test
                            XX公司加密解密程序
                            加密请扣1
                            解密请扣0
                            请扣: 1
                            输入要操作的数字: 2013
                            加密过后的数字为: 8657
    C:\>java Test
                            XX公司加密解密程序
                            加密请扣1
                            解密请扣0
                            请扣: 0
                            输入要操作的数字: 8657
                            解密过后的数字为: 2013
*/

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!