gpt4 book ai didi

java - 实现列式加密技术?

转载 作者:行者123 更新时间:2023-12-02 05:34:41 25 4
gpt4 key购买 nike

我现在正在研究另一种加密技术,即柱状转置密码技术。到目前为止,我只尝试制作列,而我想做的是查看矩阵。但根据我编写的代码,它只在矩阵中显示一个字母:

import java.io.*;
import java.lang.reflect.Array;

public class transCip {
public static void main(String args[]) {
String keys;
String message;
String encrypt;
String decrypt;
message = "encryptiontextbe";
keys = "work";
encrypt = "";
decrypt = "";
char msg[] = message.toCharArray();
char key[] = keys.toCharArray();
int x = msg.length;
int y = key.length;
char temp[][] = new char[y][x];

if (x % y != 0) {
System.out.println("Cannot encrypt string");
}
for (int i = 0; i < (x/y); i++)
{
for (int j = 0; j < y; j++)
{
int k=0;
temp[i][j] = msg[k];
k++;
}
}
System.out.println("Matrix");
for (int i = 0; i < (x/y); i++)
{
for (int j = 0; j < y; j++)
{
System.out.print(temp[i][j]);
}
System.out.println("");
}
}
}

我当前的输出如下:

Matrix
eeee
eeee
eeee
eeee

我似乎无法弄清楚为什么会发生这种情况;
我也尝试在纸上解决运行问题。

最佳答案

for (int i = 0; i < (x/y); i++) 
{
for (int j = 0; j < y; j++)
{
int k=0;
temp[i][j] = msg[k];
k++;
}
}

您在循环的每次迭代中将 k 重置为零,保证您始终获得消息字符串的第一个字母“e”。尝试在内循环之前初始化 k。通过更好的格式可以更容易地发现这一点:

for (int i = 0; i < (x/y); i++) {
for (int j = 0; j < y; j++) {
int k=0;
temp[i][j] = msg[k];
k++;
}
}

关于java - 实现列式加密技术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25124551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com