Contributor: SWAG SUPPORT TEAM        

{ 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.    But it ought to give you a
slightly different perspective and help you see alternate approaches to
the problem.
}