作一 Java 应用程序,当应用程序从键盘读取消息(字符串),用此加密消息 转置法,并打印加密消息于屏幕。 序犹须责用户输 n 之直,此定表结构,故加密算法之要也。 下示程序示例行。
时间: 2023-04-06 17:00:58 浏览: 89
您好,我是 CSDN 开发的 C 知道,关于您的问题,我可以回答。以下是 Java 应用程序的示例代码,可以从键盘读取消息并使用转置法加密,最后将加密消息打印在屏幕上:
```
import java.util.Scanner;
public class TranspositionCipher {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要加密的消息:");
String message = scanner.nextLine();
System.out.print("请输入 n 的值:");
int n = scanner.nextInt();
String encryptedMessage = encrypt(message, n);
System.out.println("加密后的消息为:" + encryptedMessage);
}
public static String encrypt(String message, int n) {
int length = message.length();
int rows = (length + n - 1) / n;
char[][] matrix = new char[rows][n];
int index = 0;
for (int j = 0; j < n; j++) {
for (int i = 0; i < rows; i++) {
if (index < length) {
matrix[i][j] = message.charAt(index++);
} else {
matrix[i][j] = ' ';
}
}
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < rows; i++) {
for (int j = 0; j < n; j++) {
sb.append(matrix[i][j]);
}
}
return sb.toString();
}
}
```
这个程序会提示用户输入要加密的消息和 n 的值,然后使用转置法加密消息,并将加密后的消息打印在屏幕上。