java->delphi
各位帮忙把这两个个java方法翻成delphi版本的,谢谢
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(); }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(); }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;