如题,不够还可以加。

解决方案 »

  1.   

    unit Crypt32;
    {
    *************************************************************************
    * Name: Crypt32.Pas    *
    * Description: 32 bits encode/decode module    *
    * 2^96 variants it is very high to try hack *
    * Purpose: Good for encrypting passwors and text *
    * Security: avoid use StartKey less than 256 *
    * if it use only for internal use you may use default  *
    * key, but MODIFY unit before compiling *
    * Call: Encrypted := Encrypt(InString,StartKey,MultKey,AddKey) *
    * Decrypted := Decrypt(InString,StartKey)    *
    * Parameters: InString = long string (max 2 GB) that need to encrypt *
    * decrypt    *
    * MultKey = MultKey key                *
    * AddKey = Second key                *
    * StartKey = Third key                *
    * (posible use defaults from interface)    *
    * Return: OutString = result string    *
    * Editor: Besr viewed with Tab stops = 2, Courier new *
    * Started: 01.08.1996    *
    * Revision: 22.05.1997 - ver.2.01 converted from Delphi 1 *
    * and made all keys as parameters, before only start key *
    * Platform: Delphi 2.0, 3.0     *
    *  work in Delphi 1.0, 2^48 variants, 0..255 strings *
    * Author: Anatoly Podgoretsky    *
    *  Base alghoritm from Borland    *
    * Address: Vahe 4-31, Johvi, Estonia, EE2045, tel. 61-142     *
    * [email protected]    *
    * Status: Freeware, but any sponsor help will be appreciated here *
    * need to buy books, shareware products, tools etc *
    *************************************************************************
    * Modified:     Supports Delphi 1.0 & 2.0                          *
    *               Overflow checking removed                          *
    * By:           Martin Djern鎠                                     *
    * e-mail:       [email protected]                            *
    * web:          einstein.ot.dk/~djernaes                           *
    *************************************************************************
    }
    interfaceconst
      StartKey = 981;   {Start default key}
      MultKey   = 12674; {Mult default key}
      AddKey   = 35891; {Add default key}function Encrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;
    function Decrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;implementation{$R-}
    {$Q-}
    {*******************************************************
     * Standard Encryption algorithm - Copied from Borland *
     *******************************************************}
    function Encrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;
    var
      I : Byte;
    begin
      Result := '';
      for I := 1 to Length(InString) do
      begin
        Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));
        StartKey := (Byte(Result[I]) + StartKey) * MultKey + AddKey;
      end;
    end;
    {*******************************************************
     * Standard Decryption algorithm - Copied from Borland *
     *******************************************************}
    function Decrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;
    var
      I : Byte;
    begin
      Result := '';
      for I := 1 to Length(InString) do
      begin
        Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));
        StartKey := (Byte(InString[I]) + StartKey) * MultKey + AddKey;
      end;
    end;
    {$R+}
    {$Q+}end.