用java语言写一个简单的置换密码
时间: 2024-10-09 11:12:10 浏览: 20
在Java中,我们可以创建一个简单的置换密码(Caesar Cipher)实现,这是一种古老的加密技术,通过将明文字符按照固定的位移进行替换。下面是一个基础的单字母替换的例子:
```java
public class CaesarCipher {
private static final int ALPHABET_SIZE = 26;
private char[] alphabet = "abcdefghijklmnopqrstuvwxyz".toCharArray();
private int shift;
public CaesarCipher(int shift) {
this.shift = shift % ALPHABET_SIZE; // 保证位移在小写字母范围内
}
public String encrypt(String plaintext) {
StringBuilder encryptedText = new StringBuilder();
for (char c : plaintext.toCharArray()) {
if (Character.isLetter(c)) { // 只处理字母字符
char shiftedChar = (c + shift - 'a') % ALPHABET_SIZE + 'a'; // 加密操作
encryptedText.append(shiftedChar);
} else {
encryptedText.append(c); // 非字母字符保持原样
}
}
return encryptedText.toString();
}
public String decrypt(String ciphertext) {
return encrypt(ciphertext, -shift); // 解密相当于反向加密,加负数位移
}
public static void main(String[] args) {
CaesarCipher cipher = new CaesarCipher(3); // 使用固定位移3
String message = "Hello, World!";
System.out.println("Encrypted: " + cipher.encrypt(message));
System.out.println("Decrypted: " + cipher.decrypt(cipher.encrypt(message)));
}
}
```
在这个例子中,`encrypt`方法接收一个字符串并返回加密后的结果,而`decrypt`方法则用于解密。`main`函数展示了如何使用这个类对"Hello, World!"进行加密和解密。
阅读全文