凯撒密码的设计思想:
代码展示
下面是一个使用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(循环减法)。
你可以根据需要修改加密算法来实现更复杂的加密和解密逻辑。