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(循环减法)。

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

猜你喜欢

转载自blog.csdn.net/IT_WEH_coder/article/details/140963362