Java实现加密和解密消息(凯撒密码)

凯撒密码的设计思想:

在这里插入图片描述

代码展示

下面是一个使用Java实现加密和解密消息的示例代码:

import java.util.Scanner;

public class EncryptionExample {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入要加密的消息:");
        String message = scanner.nextLine();
        String encryptedMessage = encryptMessage(message);
        System.out.println("加密后的消息:" + encryptedMessage);

        System.out.print("请输入要解密的消息:");
        String encryptedInput = scanner.nextLine();
        String decryptedMessage = decryptMessage(encryptedInput);
        System.out.println("解密后的消息:" + decryptedMessage);
    }

    public static String encryptMessage(String message) {
        // 加密逻辑
        StringBuilder encryptedMessage = new StringBuilder();
        for (int i = 0; i < message.length(); i++) {
            char c = message.charAt(i);
            if (c >= 'a' && c <= 'z') {
                c = (char) (((c - 'a') + 3) % 26 + 'a');
            } else if (c >= 'A' && c <= 'Z') {
                c = (char) (((c - 'A') + 3) % 26 + 'A');
            }
            encryptedMessage.append(c);
        }
        return encryptedMessage.toString();
    }

    public static String decryptMessage(String encryptedMessage) {
        // 解密逻辑
        StringBuilder decryptedMessage = new StringBuilder();
        for (int i = 0; i < encryptedMessage.length(); i++) {
            char c = encryptedMessage.charAt(i);
            if (c >= 'a' && c <= 'z') {
                c = (char) (((c - 'a') - 3 + 26) % 26 + 'a');
            } else if (c >= 'A' && c <= 'Z') {
                c = (char) (((c - 'A') - 3 + 26) % 26 + 'A');
            }
            decryptedMessage.append(c);
        }
        return decryptedMessage.toString();
    }
}

结果输出:
在这里插入图片描述

在此示例中,我们使用了一个简单的加密算法,称为凯撒密码。凯撒密码将字母按照一定的偏移量进行加密和解密。在加密时,每个字母的Unicode码值都会增加3(循环加法),而在解密时则会减少3(循环减法)。

你可以根据需要修改加密算法来实现更复杂的加密和解密逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT_WEH_coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值