function GetPassWord(PassWord: String): String;  
  var
    Str,rStr: String;
    Cha: Char;
    I,len: integer;
    function Upchar(key: Char): Char;
    var
      i,max: integer;
    begin
      Max := Ord('z');
      i := Ord(key)+ 7 ;
      if i > max then i := i- 26;
      Result := Chr(i);
    end;    function UpcharA(key: Char): Char;
    var
      i,max: integer;
    begin
      Max := Ord('Z');
      i := Ord(key)+ 5 ;
      if i > max then i := i- 26;
      Result := Chr(i);
    end;    function UpcharN(key: Char): Char;
    var
      i,max: integer;
    begin
      Max := Ord('9');
      i := Ord(key)+ 3 ;
      if i > max then i := i- 10;
      Result := Chr(i);
    end;    function Encrypt(const S: String; Key: Word): String;
    var
       I: Integer;
    begin
      Result := S;
      for I := 1 to Length(S) do
      begin
       Result[I] := char(byte(S[I]) xor Key);
       key := (byte(S[I])+i);
      end;
    end;
    function myStrToHex(StrSou: string): string;
    var
      i: integer;
      S,Temp,ResStr: string;
    begin
      S := StrSou;
      for i := 1 to  length(S) do
      begin
        Temp := Format('%x', [ord(S[i])]);
        Temp := copy('00',1, 2-length(Temp)) + Temp;
        ResStr := ResStr + Temp;
      end;
      Result := ResStr;
    end;
  begin
    Str := TRim(PassWord);
    len := Length(Str);
    for i := 1 to len  do
    begin
      Cha := Str[i];
      if Cha in ['a'..'z'] then
         Cha :=upchar(Cha)
      else if Cha in ['A'..'Z'] then
        Cha :=upcharA(Cha)
      else if  Cha in ['0'..'9'] then
        Cha :=upcharN(Cha)  ;
      rStr := rStr + Cha;
    end;
    Result := EnCrypt(rStr,123);
    Result := myStrToHex(Result);
  end;

解决方案 »

  1.   

    郁闷 自己搞定 
    留备份public class pass {
        public static char ascii2Char(int ASCII) {  
            return (char) ASCII;  
        }  
      
        public static int char2ASCII(char c) {  
            return (int) c;  
        }  
        public static byte Char2Byte(char cha){
         return (byte)cha;
        }
        
        
        //a..z转换
        public char Upchar(char cha){
         int max = char2ASCII('z');
         int i = char2ASCII(cha) + 7;
         if (i > max) {
         i = i - 26;
         }
         return ascii2Char(i);
        }
        //A..Z转换
        public char UpcharA(char cha){
         int max = char2ASCII('Z');
         int i = char2ASCII(cha) + 5;
         if (i > max) {
         i = i - 26;
         }
         return ascii2Char(i);
        }
        //0..9转换
        public char UpcharN(char cha){
         int max = char2ASCII('9');
         int i = char2ASCII(cha) + 3;
         if (i > max) {
         i = i - 10;
         }
         return ascii2Char(i);
        }
        
        public String Encrypt(String s, int key){
         String ss = "";
         int iTmp = key;
         char[] c = s.toCharArray();    
         for(int i=0;i <c.length; i++){
         ss += ascii2Char(Char2Byte(c[i])^iTmp);
         iTmp = Char2Byte(c[i]) + i;
         }
         return ss;
        }
        
        public String myStrToHex(String s){
         String strTmp = "";
         char[] c = s.toCharArray();
         for(int i=0; i< c.length; i++){   
         String strT =  Integer.toHexString(char2ASCII(c[i])) + "";      String str = "00";
    //     if (2-strT.length() != 0){
    //     strT = str.substring(1, 2-strT.length()) + strT;   
    //     }     if (strT.length() < 2){
         strT += "0"; 
         }
         strTmp +=strT;
         }
         return strTmp.toUpperCase();
        }
        
        public String GetPassWord(String s){
         char[] c = s.toCharArray();
         String strTmp = "";
         for(int i=0; i<c.length; i++){
         char cT = 'a';
         if(Character.isLowerCase(c[i])){
         cT = Upchar(c[i]);
         }else if(Character.isUpperCase(c[i])){
         cT = UpcharA(c[i]);
         }else if(Character.isDigit(c[i])){
         cT = UpcharN(c[i]);
         }
         strTmp += String.valueOf(cT);
         }
         strTmp = Encrypt(strTmp, 123);
         strTmp = myStrToHex(strTmp);
         return strTmp;
        }
        public static void main(String[] args) {
    System.out.println(new pass().GetPassWord("0"));

    }
    }