栅栏密码。分3栏,(IVO)(LEU)(OY),再每栏的第一个归一堆,第二个归一堆,第三个归一堆,ILO VEY OU,放一起就成了ILOVEYOU即I LOVE YOU.
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;ibuf.length;i++) {25 //将位置为0、2、4..放在sb1中,单数放sb2中26 if(i%2 == 0) 27 sb1.append(buf[i]); 28 else29 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 }
密文:ttaekaesiy
原文:takeiteasy
中文翻译:放松
原文:keep in touch
密文:kteoeupcihn
你使用的方法:整行句子去空除2,前半部分不动,后半部分文字插入前半部分字母间
答案出处(地址): 无