在Java中,简单的凯撒密码是一种通过移位字母表中的字符来实现加密和解密的方法。以下是一个简单的Java程序,用于实现凯撒密码的加密和解密功能。
首先,我们需要定义一个方法来实现凯撒密码的加密功能:
public static String encryptCaesarCipher(String input, int shift) {
StringBuilder encrypted = new StringBuilder();
for (char c : input.toCharArray()) {
if (Character.isLetter(c)) {
int base = Character.isLowerCase(c) ? 'a' : 'A';
encrypted.append((char) (((c - base + shift) % 26) + base));
} else {
encrypted.append(c);
}
}
return encrypted.toString();
}
接下来,我们需要定义一个方法来实现凯撒密码的解密功能:
public static String decryptCaesarCipher(String input, int shift) {
StringBuilder decrypted = new StringBuilder();
for (char c : input.toCharArray()) {
if (Character.isLetter(c)) {
int base = Character.isLowerCase(c) ? 'a' : 'A';
decrypted.append((char) (((c - base - shift + 26) % 26) + base));
} else {
decrypted.append(c);
}
}
return decrypted.toString();
}
最后,我们可以在主方法中调用这两个方法来实现加密和解密的功能:
public static void main(String[] args) {
String input = "Hello, World!";
int shift = 3;
String encrypted = encryptCaesarCipher(input, shift);
System.out.println("Encrypted: " + encrypted);
String decrypted = decryptCaesarCipher(encrypted, shift);
System.out.println("Decrypted: " + decrypted);
}
输出结果:
Encrypted: Khoor, Zruog!
Decrypted: Hello, World!
在这个例子中,我们使用了一个简单的凯撒密码来实现加密和解密的功能。我们可以通过调整shift参数来改变加密的强度。需要注意的是,这个程序只能处理英文字符,对于其他字符集(如中文、数字等)可能无法正确处理。
算法大赛
云+社区沙龙online[数据工匠]
腾讯云数据湖专题直播
腾讯云数智驱动中小企业转型升级系列活动
云+社区沙龙online [技术应变力]
云+社区沙龙online[数据工匠]
领取专属 10元无门槛券
手把手带您无忧上云