对约瑟夫问题,对一段英文语句进行加密和解密 JAVA源代码
时间: 2024-09-06 16:02:39 浏览: 59
约瑟夫环(Josephus Problem)是一个经典的算法问题,通常涉及在一系列的人或数字中按一定步长进行删除,直到剩下一个人。在Java中,你可以使用循环和条件判断来模拟这个过程。
对于简单的加密,比如替换每个字符,可以使用ASCII值进行操作。但这里假设我们说的是某种更复杂的加密方法,如Caesar Cipher(凯撒密码),可以将字母向前或向后移动固定位数。下面是一个简单的Caesar Cipher加密和解密示例:
```java
public class CaesarCipher {
private static final int SHIFT = 3; // 加密位移
public String encrypt(String input) {
StringBuilder encrypted = new StringBuilder();
for (char c : input.toCharArray()) {
if (Character.isLetter(c)) { // 只处理字母
char shifted = (c + SHIFT - 'A') % 26 + 'A'; // 加密
encrypted.append(shifted);
} else {
encrypted.append(c); // 非字母字符不变
}
}
return encrypted.toString();
}
public String decrypt(String input) {
return encrypt(input); // 对于简单的凯撒密码,加密和解密是相同的,因为只需反向位移即可
}
public static void main(String[] args) {
String original = "Hello, World!";
System.out.println("Original: " + original);
String encrypted = new CaesarCipher().encrypt(original);
System.out.println("Encrypted: " + encrypted);
String decrypted = new CaesarCipher().decrypt(encrypted);
System.out.println("Decrypted: " + decrypted);
}
}
```
请注意,这只是一个基础的示例,并非高级加密技术。实际应用中会使用更复杂的安全算法,如AES、RSA等。
阅读全文