Phil Scadden wrote:
> here is my favourite, very simple string to hex gobbledegooker.
> 
> Function Encrypt (Src:String; Key:String; Encrypt : Boolean):string;
> var
>    idx         :integer;
>    KeyLen      :Integer;
>    KeyPos      :Integer;
>    offset      :Integer;
>    dest        :string;
>    SrcPos      :Integer;
>    SrcAsc      :Integer;
>    TmpSrcAsc   :Integer;
>    Range       :Integer;
> 
> begin
>      KeyLen:=Length(Key);
>      if KeyLen = 0 then key:='235jhsf9msf;&#@*#';
>      KeyPos:=0;
>      SrcAsc:=0;
>      Range:=256;
>      if Encrypt then
>      begin
>           Randomize;
>           offset:=Random(Range);
>           dest:=format('%1.2x',[offset]);
>           for SrcPos := 1 to Length(Src) do
>           begin
>                SrcAsc:=(Ord(Src[SrcPos]) + offset) MOD 255;
>                if KeyPos < KeyLen then KeyPos:= KeyPos + 1 
> else KeyPos:=1;
>                SrcAsc:= SrcAsc xor Ord(Key[KeyPos]);
>                dest:=dest + format('%1.2x',[SrcAsc]);
>                offset:=SrcAsc;
>           end;
>      end
>      else
>      begin
>           offset:=StrToInt('$'+ copy(src,1,2));
>           SrcPos:=3;
>           repeat
>                 SrcAsc:=StrToInt('$'+ copy(src,SrcPos,2));
>                 if KeyPos < KeyLen Then KeyPos := KeyPos + 1 
> else KeyPos := 1;
>                 TmpSrcAsc := SrcAsc xor Ord(Key[KeyPos]);
>                 if TmpSrcAsc <= offset then
>                      TmpSrcAsc := 255 + TmpSrcAsc - offset
>                 else
>                      TmpSrcAsc := TmpSrcAsc - offset;
>                 dest := dest + chr(TmpSrcAsc);
>                 offset:=srcAsc;
>                 SrcPos:=SrcPos + 2;
>           until SrcPos >= Length(Src);
>      end;
>      Result:=Dest;
> end;
> 
> ----------------------------------------------------------
> Phil Scadden, Institute of Geological and Nuclear Sciences
> 41 Bell Rd South, PO Box 30368, Lower Hutt, New Zealand
> Ph +64 4 5704821, fax +64 4 5704603
> 
> --------------------------------------------------------------
> -------------
>     New Zealand Delphi Users group - Delphi List - 
> [EMAIL PROTECTED]
>                   Website: http://www.delphi.org.nz
> To UnSub, send email to: [EMAIL PROTECTED] 
> with body of "unsubscribe delphi"
> Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/
> 
---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz
To UnSub, send email to: [EMAIL PROTECTED] 
with body of "unsubscribe delphi"
Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/

Reply via email to