下面是我用java写的一个加密方法。我想把它换成delphi该怎么转换,菜鸟请求大家的帮助
  //密码加密,输入原始密码(可以包含字母和数字以外的字符),返回加密后的密码
public class Xtdl implements java.io.Serializable{  private String sqlStr = "";
  private ResultSet rs = null;
  
  private WriteLog writelog = new WriteLog();  public ArrayList arrMenus1 = new ArrayList();
  public ArrayList arrMenus2 = new ArrayList();
  public ArrayList arrMenus3 = new ArrayList();  //空构造函数
  public Xtdl()
  {
  }  
public String  encrypt(String sPwd)
  {
    String afpass="";
    int len;
    len=sPwd.length();    int rest;
    rest=10-len;    char tmp[];
    tmp=sPwd.toCharArray();    int en[];
    en=new int[10];    char enchar[];
    enchar=new char[10];    for(int i=0;i<sPwd.length();i++)
    {
       en[i]=(int)(tmp[i])+i;
    }    for(int i=sPwd.length();i<10;i++)
    {
       en[i]=100+i;
    }      for(int i=0;i<5;i++)
    {
      enchar[4-i]=(char)en[i];
    }    for(int i=5;i<10;i++)
    {
      enchar[14-i]=(char)en[i];
    }    for(int i=0;i<10;i++)
    {
        afpass=afpass+enchar[i];
    }
    return afpass;
   }
}
如何转换成delphi。

解决方案 »

  1.   


    function Encrypt(APwd: String): String;
    var
      en: array[1..10] of Integer;
      enChar: array[1..10] of Char;
      i: Integer;
    begin
      Result := '';
      for i := 1 to Length(APwd) do
        en[i] := Integer(APwd[i]) + i - 1;
      for i := Length(APwd) + 1 to 10 do
        en[i] := 100 + i - 1;
      for i := 1 to 5 do
        enChar[6 - i] := Char(en[i]);
      for i := 6 to 10 do
        enChar[16 - i] := Char(en[i]);
      for i := 1 to 10 do
        Result := Result + enChar[i];
    end;