首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

java->delphi,该怎么处理

2012-06-14 
java-delphi各位帮忙把这两个个java方法翻成delphi版本的,谢谢Java codepublic static String getObfusca

java->delphi
各位帮忙把这两个个java方法翻成delphi版本的,谢谢

Java code
public static String getObfuscateData(String str){        char[] strChars = str.toCharArray();        byte[] result = new byte[8];        for(int i=0;i<8;i++){            int r =  strChars[10+i] ^ strChars[18+i] ^ strChars[26+i] ^ strChars[34+i];            result[i] = (byte) r;        }        String hex = HSMUtil.byteArr2HexString(result);        StringBuilder sb  = new StringBuilder();        for(int i=0;i<8;i++){            char c = hex.charAt(i);            if(c>60){                c = (char)(47 + (c % 16));            }            sb.append(c);        }        return sb.toString();    }

Java code
public static String byteArr2HexString(byte[] bytearr) {        if (bytearr == null) {            return "null";        }        StringBuffer sb = new StringBuffer();        for (int k = 0; k < bytearr.length; k++) {            if ((bytearr[k] & 0xFF) < 16) {                sb.append("0");            }            sb.append(Integer.toString(bytearr[k] & 0xFF, 16));        }        return sb.toString();    }


[解决办法]
说说要实现啥功能不就得了
[解决办法]
Delphi(Pascal) code
function  getObfuscateData(strs:string):string;var  i,f:Integer;  cha:array of Char;  byte,sb:string;  c:Char;begin  SetLength(cha,Length(strs)-1);  for i:=0 to Length(strs)-1 do begin    cha[i]:=strs[i];  end;  for i:=0 to 7 do begin    f:=cha[10+i] ^ cha[18+i] ^ cha[26+i] ^ cha[34+i];///////////////////// 自己查下转换    Result := IntToStr(f)  end;  String hex = HSMUtil.byteArr2HexString(result);/////////////////////   自己查下       for i:=0 to 8 do begin          c = hex[i];        sb:='';        if Ord(c) >60 then  begin          c = (char)(47 + (Ord(c) mod 16));        end;        sb:=sb+c;      end;  Result:= sb;end;function byteArr2HexString (bytearr :string):string;var  sb:string;  i:Integer;begin  if bytearr='' then begin    Result:='';  end;  sb:='';  for i:=0 to Length(bytearr)-1 do begin    if (bytearr[i] & 0xff ) <16 then begin /////////自己查下转换      sb:=sb+'0';    end;    sb:=sb+'1';  end;  Result:=sb;end; 

热点排行