Java凯撒密码编写
时间: 2024-11-03 16:15:34 浏览: 33
在Java中编写凯撒密码也很直观,以下是一个简单的实现步骤:
1. 首先,创建一个名为`CaesarCipher`的类,包含一个方法`encrypt`来进行加密,另一个方法`decrypt`进行解密。
```java
public class CaesarCipher {
private int shift;
// 构造函数,接收偏移量作为参数
public CaesarCipher(int shiftValue) {
this.shift = shiftValue;
}
// 加密方法,接受一个字符串作为输入
public String encrypt(String input) {
StringBuilder encrypted = new StringBuilder();
for (char c : input.toCharArray()) {
if (Character.isLetter(c)) {
if (Character.isUpperCase(c))
encrypted.append((char) ((c - 'A' + shift) % 26 + 'A'));
else
encrypted.append((char) ((c - 'a' + shift) % 26 + 'a'));
} else {
encrypted.append(c);
}
}
return encrypted.toString();
}
// 解密方法,与加密方法类似,只是减去偏移量
public String decrypt(String input) {
return encrypt(input, -shift); // 使用负数偏移量解密
}
// 辅助方法,提供加密和解密功能
public String process(String operation, String input) {
switch (operation) {
case "encrypt":
return encrypt(input);
case "decrypt":
return decrypt(input);
default:
throw new IllegalArgumentException("Invalid operation");
}
}
}
```
2. 调用实例并进行操作:
```java
public static void main(String[] args) {
CaesarCipher cipher = new CaesarCipher(3);
String originalText = "Hello, World!";
String encryptedText = cipher.process("encrypt", originalText);
System.out.println("Encrypted text: " + encryptedText);
String decryptedText = cipher.process("decrypt", encryptedText);
System.out.println("Decrypted text: " + decryptedText);
}
阅读全文