用JAVA实现一个凯撒密码加密
时间: 2023-03-27 19:00:35 浏览: 98
可以使用以下代码实现凯撒密码加密:
```
public static String caesarCipher(String str, int shift) {
StringBuilder result = new StringBuilder();
for (int i = ; i < str.length(); i++) {
char ch = str.charAt(i);
if (Character.isLetter(ch)) {
char shifted = (char) (ch + shift);
if ((Character.isLowerCase(ch) && shifted > 'z') || (Character.isUpperCase(ch) && shifted > 'Z')) {
shifted = (char) (shifted - 26);
}
result.append(shifted);
} else {
result.append(ch);
}
}
return result.toString();
}
```
其中,str是要加密的字符串,shift是加密的偏移量。
相关问题
用java编写一个凯撒密码程序,实现将一个明文加密
好的,以下是用 Java 编写的凯撒密码程序的示例代码:
```
import java.util.Scanner;
public class CaesarCipher {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入明文:");
String plainText = sc.nextLine();
System.out.print("请输入偏移量:");
int offset = sc.nextInt();
String cipherText = encrypt(plainText, offset);
System.out.println("密文是:" + cipherText);
}
public static String encrypt(String plainText, int offset) {
char[] chars = plainText.toCharArray();
for (int i = 0; i < chars.length; i++) {
char c = chars[i];
if (c >= 'A' && c <= 'Z') {
chars[i] = (char) ((c - 'A' + offset) % 26 + 'A');
} else if (c >= 'a' && c <= 'z') {
chars[i] = (char) ((c - 'a' + offset) % 26 + 'a');
}
}
return new String(chars);
}
}
```
运行程序后,输入明文和偏移量,程序就会输出加密后的密文。例如,输入明文为 `hello world`,偏移量为 3,则程序输出的密文为 `khoor zruog`。
以上是一个简单的凯撒密码实现,方便起见,我们只考虑了字母的大小写,没有考虑其他字符。在实际的应用中,还需要考虑更多的因素来提高密码的安全性。
我想使用java完成一个凯撒密码的解密与加密系统
好的,凯撒密码是一种简单的密码加密方法,它将明文中的每个字母都按照一个固定的偏移量进行移位,从而生成密文。解密时,只需按照相同的偏移量将密文中的每个字母向反方向移位即可得到明文。
以下是一个使用Java实现凯撒密码加密与解密的示例代码:
```java
import java.util.Scanner;
public class CaesarCipher {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要加密/解密的字符串:");
String str = scanner.nextLine();
System.out.print("请输入偏移量:");
int offset = scanner.nextInt();
String encryptedText = encrypt(str, offset);
String decryptedText = decrypt(encryptedText, offset);
System.out.println("加密后的字符串:" + encryptedText);
System.out.println("解密后的字符串:" + decryptedText);
}
// 加密方法
public static String encrypt(String str, int offset) {
char[] charArray = str.toCharArray();
for (int i = 0; i < charArray.length; i++) {
charArray[i] = (char) (charArray[i] + offset);
}
return new String(charArray);
}
// 解密方法
public static String decrypt(String str, int offset) {
char[] charArray = str.toCharArray();
for (int i = 0; i < charArray.length; i++) {
charArray[i] = (char) (charArray[i] - offset);
}
return new String(charArray);
}
}
```
你可以将上述代码复制到一个Java源文件中,然后使用Java编译器编译并执行它。在程序执行过程中,你需要输入要加密/解密的字符串和偏移量,程序会自动输出加密后的字符串和解密后的字符串。
阅读全文