单表替换算法java
时间: 2023-11-18 19:56:04 浏览: 34
单表替换算法是一种简单的加密算法,它通过将原文中的每个字母替换成密文表中对应的字母来实现加密。在Java中,可以通过使用字符数组和Map等数据结构来实现单表替换算法。具体实现可以参考以下代码:
```
public class SubstitutionCipher {
private static final char[] PLAIN_ALPHABET = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
private static final char[] CIPHER_ALPHABET = {'z', 'y', 'x', 'w', 'v', 'u', 't', 's', 'r', 'q', 'p', 'o', 'n', 'm', 'l', 'k', 'j', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a'};
private static final Map<Character, Character> CIPHER_MAP = new HashMap<>();
static {
for (int i = 0; i < PLAIN_ALPHABET.length; i++) {
CIPHER_MAP.put(PLAIN_ALPHABET[i], CIPHER_ALPHABET[i]);
}
}
public static String encrypt(String plainText) {
StringBuilder cipherText = new StringBuilder();
for (char c : plainText.toCharArray()) {
if (Character.isLetter(c)) {
cipherText.append(CIPHER_MAP.get(Character.toLowerCase(c)));
} else {
cipherText.append(c);
}
}
return cipherText.toString();
}
public static String decrypt(String cipherText) {
StringBuilder plainText = new StringBuilder();
for (char c : cipherText.toCharArray()) {
if (Character.isLetter(c)) {
plainText.append(CIPHER_MAP.get(Character.toLowerCase(c))); } else {
plainText.append(c);
}
}
return plainText.toString();
}
}
```
以上代码实现了一个简单的单表替换算法,它将明文中的每个字母替换成密文表中对应的字母,从而实现加密和解密的功能。在加密和解密过程中,只需要调用`encrypt`和`decrypt`方法即可。