java实现凯撒密码(使用到了类和对象)

今天带来的是一个纯java实现的加密解密小程序

//这是控制台
import java.util.Scanner;

public class Switcher {

    public static void main(String[] args) {
        System.out.println("*****************************");
        System.out.println("******欢迎使用凯撒加密解密器******");
        System.out.println("*****************************");
        System.out.println("请选择操作(1.加密,2.解密):");
        Scanner in = new Scanner(System.in);
        int choice = in.nextInt();//判断用户的选择
        switch(choice) {
            case 1:
                System.out.println("请输入待加密的字符串:");
                in.nextLine();
                String jiami = in.nextLine();
                Encryption enc = new Encryption();
                System.out.println("加密后的字符串是:");
                enc.encryption(jiami);
                break;
            case 2:
                System.out.println("请输入待解密的字符串:");
                in.nextLine();
                String jiemi = in.nextLine();
                Dncryption dnc = new Dncryption();
                System.out.println("解密后的字符串是:");
                dnc.dncryption(jiemi);
                break;
            default:
                System.out.println("输入数据有误!");
        }
        
        in.close();

    }

}

//这是一个加密类
public class Encryption {

    public void encryption(String jiami) {
        char[] temp = jiami.toCharArray();
        int[] newtemp = new int[temp.length];
        //将字符数组转化为整型
        for (int i = 0; i < temp.length; i++) {
            newtemp[i] = temp[i];
        }
        //循环每个整型数组数值
        for (int i = 0; i < newtemp.length; i++) {
            //判断是否为小写字母
            if(newtemp[i] <= 122 && newtemp[i] >= 97) {
                if(newtemp[i] == 120) {
                    newtemp[i] = 97;
                } else if(newtemp[i] == 121) {
                    newtemp[i] = 98;
                } else if(newtemp[i] == 122) {
                    newtemp[i] = 99;
                } else {
                    newtemp[i] = newtemp[i] + 3;
                }
            }
            //判断是否为大写字母
            if(newtemp[i] <= 90 && newtemp[i] >= 65) {
                if(newtemp[i] == 88) {
                    newtemp[i] = 65;
                } else if(newtemp[i] == 89) {
                    newtemp[i] = 66;
                } else if(newtemp[i] == 90) {
                    newtemp[i] = 67;
                } else {
                    newtemp[i] = newtemp[i] + 3;
                }
            }
        }
        //输出字符
        for (int i = 0; i < newtemp.length; i++) {
            temp[i] = (char)newtemp[i];
            System.out.print(temp[i]);
        }
        
    }

}

//这是一个解密类
public class Dncryption {

    public void dncryption(String jiemi) {
        char[] temp = jiemi.toCharArray();
        int[] newtemp = new int[temp.length];
        //将字符数组转化为整型
        for (int i = 0; i < temp.length; i++) {
            newtemp[i] = temp[i];
        }
        //循环每个整型数组数值
        for (int i = 0; i < newtemp.length; i++) {
            //判断是否为小写字母
            if(newtemp[i] <= 122 && newtemp[i] >= 97) {
                if(newtemp[i] == 97) {
                    newtemp[i] = 122;
                } else if(newtemp[i] == 98) {
                    newtemp[i] = 121;
                } else if(newtemp[i] == 99) {
                    newtemp[i] = 122;
                } else {
                    newtemp[i] = newtemp[i] - 3;
                }
            }
            //判断是否为大写字母
            if(newtemp[i] <= 90 && newtemp[i] >= 65) {
                if(newtemp[i] == 65) {
                    newtemp[i] = 88;
                } else if(newtemp[i] == 66) {
                    newtemp[i] = 89;
                } else if(newtemp[i] == 67) {
                    newtemp[i] = 90;
                } else {
                    newtemp[i] = newtemp[i] - 3;
                }
            }
        }
        //输出字符
        for (int i = 0; i < newtemp.length; i++) {
            temp[i] = (char)newtemp[i];
            System.out.print(temp[i]);
        }
        
    }

}

猜你喜欢

转载自blog.csdn.net/qq_36793007/article/details/81289967
今日推荐