Java实现凯撒密码加解密
时间: 2024-06-19 22:03:47 浏览: 94
凯撒密码是一种古老的加密方式,它通过将明文中的每个字母按照一定规则进行位移,从而生成密文。Java实现凯撒密码加解密可以采用如下代码:
```java
public class CaesarCipher {
public static void main(String[] args) {
String plainText = "Hello World";
int shift = 3;
String encryptedText = encrypt(plainText, shift);
System.out.println("Encrypted Text: " + encryptedText);
String decryptedText = decrypt(encryptedText, shift);
System.out.println("Decrypted Text: " + decryptedText);
}
public static String encrypt(String plainText, int shift) {
StringBuilder result = new StringBuilder();
for (char c : plainText.toCharArray()) {
if (Character.isUpperCase(c)) {
result.append((char) ('A' + (c - 'A' + shift) % 26));
} else if (Character.isLowerCase(c)) {
result.append((char) ('a' + (c - 'a' + shift) % 26));
} else {
result.append(c);
}
}
return result.toString();
}
public static String decrypt(String encryptedText, int shift) {
StringBuilder result = new StringBuilder();
for (char c : encryptedText.toCharArray()) {
if (Character.isUpperCase(c)) {
result.append((char) ('A' + (c - 'A' - shift + 26) % 26));
} else if (Character.isLowerCase(c)) {
result.append((char) ('a' + (c - 'a' - shift + 26) % 26));
} else {
result.append(c);
}
}
return result.toString();
}
}
```
其中,encrypt()方法用于加密明文,decrypt()方法用于解密密文。shift参数表示位移量,即明文中每个字母向后移动的位置数。
阅读全文