这是输出应该是什么样的:使用柱状转置密码加密的演示:
--->输入要加密的消息:是时候开始了吗?
============================使用柱状转置密码加密的消息,没有填充 .
在没有填充的情况下使用2行进行加密:i ttm og e?siiet oyt
使用3行加密而不填充:iiteooesti t mtgy?
使用4行加密而不填充:itmo是一个geiitot
使用5行加密而不填充:i o?stt ioyim etegt
使用6行加密而不填充:itosi t mg?ieot ty
使用7行加密而不填充:iigsmo e i ytte ott?
使用8行加密而不填充:im sey eittto? TGIO
使用9行加密而不填充:iees t t?iot gtoi my
使用10行加密而不填充:i?st oi tg ot iymeet
这是我目前的代码 . 有时会打印问号,但最后几行不起作用 .
public static void encrypt(String input) {
System.out.println("*============================*");
System.out.println("Message encrypted with columnar transposition cipher and no padding.\n");
int x = 0;
int row = 1;
for(int r = 1; r <= 9; r++) {
row++;
System.out.print("Using "+row+" rows to encrypt without padding: ");
for(int e = 1; e <= row; e++) {
for(int i = 1; i <= Math.ceil(input.length()/row); i++) {
System.out.print(input.charAt(x));
x= x+row;
if(x >= input.length()) {
break;
}
}
x = e;
}
System.out.println();
}
}