刚碰到一个PB加密后的文件,要求用java解密出来,但是就是实现不出来PB的算法:
integer ilen
integer ifor
string outstr
ilen = len(instr)for ifor = 1 to ilen
outstr = outstr + char(mod(asc(mid(instr,ifor,1)) + 256 - 20,256)) //主要加密部分,对单个字符进行加密
nextreturn outstr加密后的数据为:
箼都鯙访娇辊"鯚樁绩浂疾┆濞酋祹脺貂罇!?貂 #??%#!?? ?%#!? ?%%?貂鯚樁绩浂疾┆濞酋酲扦?
箼都鯛撷タ辊#鯚樁绩浂疾┆濞酋祹脺貂罇!?貂 #??%#!?? ?%#!? ?%%貂貂煒都都博ㄇ貂ㄇぽ
箼都鯛撷タ辊#?醯幟滜趵?!?貂 #? ?%#!?? ?%#!? ?%%貂??貂ㄇぽ
箼都鯛撷タ辊#鯚樁减祹脺貂罇!?貂 #? ?%#!?? ?%#!? ?%%貂?鯚樁减酲扦?
箼都鯛撷タ辊#?醯幟滜趵?!?貂 #??%#!?? ?%#!? ?%%貂??貂ㄇぽ
箼都鯛撷タ辊#?醯幟滜趵?!?貂 #??%#!?? ?%#!? ?%%貂??貂ㄇぽ
箼都鯛撷タ辊#酲浂减祹脺貂罇!?貂 #??%#!?? ?%#!? ?%%貂?酲浂减酲扦?
箼都酾數婵辊$鯚樁绩浂疾┆濞酋晶á箿脺貂罇!甸?貂 #??%#!?? ?%#!? ?%%貂貂煒都都博ㄇ貂ㄇぽ
箼都酾數婵辊$?蹙Ж⒐溍滜趵?!甸?貂 #??%#!?? ?%#!? ?%%貂??貂ㄇぽ
箼都酾數婵辊$酲浂减晶á箿脺貂罇!甸?貂 #??%#!?? ?%#!? ?%%貂?酲浂减酲扦?各位高人,小弟在线急等,帮个大忙吧,兄弟分少,凑合着接点吧

解决方案 »

  1.   

    就是每个字符按ASCII前移20位,循环前移。
      

  2.   

    import java.util.*;
    public class Test{
        public static void main(String[] args) {
            //System.out.println(countBits(-1));
            System.out.println(handleString("箼都鯙访娇辊\"鯚樁绩浂疾┆濞酋祹脺貂罇!?貂 #??%#!?? ?%#!? ?%%?貂鯚樁绩浂疾┆濞酋酲扦? "));
        }
        public static String handleString(String str){
         byte[] bys=str.getBytes();
         for(int i=0;i<bys.length;i++){
         bys[i]=(byte)((bys[i]+20)%256);
         }
         return new String(bys);
        
        }
    }我只做了第一行,不知道为什么最后部分的内容不太对:
    F:\java>java Test
    铜陵市  菜籽油  1002060101      超市集市平均价  散装            元/500克S2.00           340700S00S00
    90705SS4S0090705S4S99S.00                       超市集市平均价          价窼4
      

  3.   

    这是第二行的:铜陵市  大豆油  1002070101      超市集市平均价  散装            元/500克S2.00           340700S00S00
    90705SS4S0090705S4S99                           超市集市平均价          价格4!