Rail Fence Technique:變換加密技術一種。
??????????????????? 1、將明文消息寫成對角線序列
??????????????????? 2、將第一步寫出的明文讀入序列
?? RailFence.java
?1?import?java.io.BufferedReader;
?2?import?java.io.FileWriter;
?3?import?java.io.IOException;
?4?import?java.io.InputStreamReader;
?5?import?java.io.PrintWriter;
?6?
?7?public?class?RailFence?{
?8?
?9?????public?static?void?main(String[]?args)?{????????
10?????????char[]?buf;
11?????????String?str?=?new?String("");
12?????????StringBuffer?sb1?=?new?StringBuffer("");
13?????????StringBuffer?sb2?=?new?StringBuffer("");
14?????????
15?????????BufferedReader?in?=?new?BufferedReader(new?InputStreamReader(System.in));
16?????????try?{
17?????????????PrintWriter?out?=?new?PrintWriter(new?FileWriter("d:""czl.txt"));
18?????????????while((str=in.readLine())!=?null)?{
19?????????????????if(str.equalsIgnoreCase("exit"))?break;????//退出操作
20?????????????????System.out.println("明文:"+str);????????//將輸入的字符串打印到控制臺
21?????????????????out.println("============柵欄加密技術=============");
22?????????????????out.println("明文:"+str);
23?????????????????buf?=?str.toCharArray();????//將輸入的字符串轉變為字符數組
24?????????????????for(int?i=0;i<buf.length;i++)?{
25?????????????????????//將位置為0、2、4..放在sb1中,單數放sb2中
26?????????????????????if(i%2?==?0)????
27?????????????????????????sb1.append(buf[i]);????????????
28?????????????????????else
29?????????????????????????sb2.append(buf[i]);
30?????????????????}
31?????????????????out.println("密文:"+sb1.append(sb2));????//合并兩個數組????
32?????????????}
33?????????????out.flush();
34?????????????out.close();
35?????????}?catch?(IOException?e)?{
36?????????????e.printStackTrace();
37?????????}
38?????????
39?????}
40?
41?}