闲着,发现昨天网上流传甚广的光棍节程序员闯关秀,死磕硬碰到了最后一关,按网上攻略提示,总算把第十关给破了。 
  
 
   故小结一番,java编程如下: 
   
 
     //攻略提示: 
  //有人提示要应景光棍节,空格全替换成1。然后8位2进制,转换成一个byte, 
  //然后有了byte Array,转成ASCII码,就会看到一个Base64的字符串, 
  //把字符串存成文件,文件解压缩,就看到通关的Key了 
     
 
   
 
   import  java.io.BufferedReader; 
  import  java.io.BufferedWriter; 
  import  java.io.File; 
  import  java.io.FileInputStream; 
  import  java.io.FileOutputStream; 
  import  java.io.FileReader; 
  import  java.io.FileWriter; 
  import  java.io.IOException; 
  import  java.io.InputStream; 
  import  java.io.OutputStream; 
  import  java.util.zip.ZipEntry; 
  import  java.util.zip.ZipOutputStream; 
  import  sun.misc.BASE64Decoder; 
  import  sun.misc.BASE64Encoder; 
  
 
  
 
  public   class  DoubleEleven { 
         
         public   static   void  main(String[] args)  throws  Exception{ 
               
               char [] str = readFile( "D://code.txt" ); 
           //code中存放的为第九关上的字符,已在文本编辑器里将下划线"____"替换为"1111"              
           //readFIle实现:将8位2进制→1个byte→ASCII码→char Array 
               
              String cc =  new  String(str); //char Array→Base64的字符串 
              System. out .print(cc );  
              GenerateFile(cc); //Base64的字符串string → 解码decoder后生成zip文件 
       
  //PS:一开始直接写成jpg文件老是打不开,后面改为zip,嘿嘿,解压缩后仓老师出现了~with key to level 10 
          
        } 
         public   static   char [] readFile(String fileName) {  
           //byte num; 
            
           char [] coutput=  new   char [8112]; 
           int  j=0; 
          String stroutput =  "" ; 
          
          File file =  new  File(fileName);                
           if (file.exists()){  
               if (file.isFile()){  
                   try {  
                      BufferedReader input =  new  BufferedReader ( new  FileReader(file));  
                      String text;  
                           
                      String[] texts =  new  String[8]; 
                       byte  temp; 
                                 while ((text = input.readLine()) !=  null )  
                                { 
                                  texts = text.split( " " ); //将每行字符串分为8段(按空格分离) 
                                 for ( int  i=0;i<8;i++,j++){ 
                                      temp=Byte.valueOf(texts[i],2);  //将每个byte转换成char 
                                      coutput[j]=( char )temp; 
                                     } 
                                }                    
                  }  
                   catch (IOException ioException){  
                     
                   System. err .println( "File Error!" );  
    
                  }  
              }  
               else   if (file.isDirectory()){  
                  String[] dir = file.list();  
                  stroutput +=  "Directory contents:/n" ;                         
                   for ( int  i=0; i<dir. length ; i++){  
                    stroutput += dir[i] + "/n" ;  
                  }  
              }  
          }  
           else {  
              System. err .println( "Does not exist!" );  
          }  
           return  coutput;  
       } 
         
         //base64字符串转化成文件(zip格式) 
       public   static   boolean  GenerateFile(String imgStr)  
      {    //对字节数组字符串进行Base64解码并生成图片  
           if  (imgStr ==  null )  //图像数据为空  
               return   false ;  
          BASE64Decoder decoder =  new  BASE64Decoder();  
           try    
          {  
               //Base64解码  
               byte [] b = decoder.decodeBuffer(imgStr);  
               for ( int  i=0;i<b. length ;++i)  
              {  
                   if (b[i]<0)  
                  { //调整异常数据  
                      b[i]+=256;  
                  }  
              }  
               //生成zip压缩文件  
              String imgFilePath =  "d://光棍2012.zip" ; //新生成的文件  
              OutputStream out =  new  FileOutputStream(imgFilePath);      
              out.write(b);  
              out.flush();  
              out.close();  
               return   true ;  
          }   
           catch  (Exception e)   
          {  
               return   false ;  
          }  
      }   
  }   
  
 
  
 
  运行最终结果: http://segmentfault.com/game/?k=e4a4a96a69a1b2b530b3bec6734cdf52 
  
 
 过关其他策略问题: 
 1.谷歌浏览器必备工具,Ctrl+shirt+I 熟练操作之,抓包嘿嘿。 
 2.谷姐,度娘~必修之课 
 3.常用加密解密方法