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]);
        }
        
    }

}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值