java - 实现列式加密技术?

标签 java

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

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/

相关文章:

java - Dbpedia 提取框架 - 如何去除 mediawiki 格式标记

java - JAXB 和抽象类

java - Junit 模拟私有(private)方法

java - Spring Integration AMQP - 消息偶尔未确认,需要超时吗?

java - 自动装箱和强制有什么区别?

java - JxBrowser:发送消息失败。 channel 已经关闭

java - JVM是否将字节码解释为汇编语言

java - 方法必须返回 int

java - 在Java中执行while循环跳过用户输入

java - 为什么 JNDI 返回带有 NULL uri 的数据源而不是查找失败?