简单实现栅栏加密法

简单实现栅栏加密法

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  }


你可能感兴趣的:(简单实现栅栏加密法)