首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现柱状加密技术?

实现柱状加密技术?
EN

Stack Overflow用户
提问于 2014-08-04 17:46:01
回答 1查看 333关注 0票数 0

我正在研究另一种加密技术,柱状转位密码技术。到目前为止,我只试着制作列,而我要做的就是查看矩阵。但是用我所写的代码,它在矩阵中只显示了一个字母:

代码语言:javascript
复制
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("");
        }
    }
}

我目前的产出如下:

代码语言:javascript
复制
Matrix
eeee
eeee
eeee
eeee

我似乎搞不懂为什么会发生这种事;

我也试着在纸上解决跑步问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-04 17:54:54

代码语言:javascript
复制
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。如果有更好的格式,就更容易发现这一点:

代码语言:javascript
复制
for (int i = 0; i < (x/y); i++) {
    for (int j = 0; j < y; j++) {
        int k=0;
        temp[i][j] = msg[k];
        k++;
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25124551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档