[Back to ENCRYPT SWAG index] [Back to Main SWAG index] [Original]

    { JL> I'm writing a Program to set and test passWords. I imagine you saw it in
     JL> PASCAL echo. Well, I want to know if there is an easier way to encrypt a
     JL> File then to assign a different Character to each letter. This is the
     JL> only way that I can think of to do this.

     JL> 'A':= '^';
     JL> 'B':= 'q';

    What you suggest isn't so much encryption as it is a substitution cypher.  The
    following is more of an *encryption*:
    }

    Function Crypt(S : String) : String;
    (* xor can be used to *toggle* values.  In this Case it is toggling  *)
    (* Character of the String based on its postion in the String.  This *)
    (* ensures that the mask is always known For the pupose of decoding. *)
      Var
        i : Byte;
      begin
        For i := 1 to Length(S) Do
          S[i] := Char(ord(S[i]) xor i);
        Crypt := S;
      end;

    Var
      TestS : String;
      TestMask : Byte;

    begin
      TestS := 'This is a test 1234567890 !@$%';
      Write('original: ');
      Writeln(TestS);

      TestS := Crypt(TestS);
      Write('Encrypt : ');
      Writeln(TestS);

      TestS := Crypt(TestS);
      Write('Decrypt : ');
      Writeln(TestS);
    end.

    {Please note that this was a quickie and not fully tested and thereFore
    cannot be guaranteed to be perfect.  <grin>  But it ought to give you a
    slightly different perspective and help you see alternate approaches to
    the problem.
    }

[Back to ENCRYPT SWAG index] [Back to Main SWAG index] [Original]