home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 10_11 / tricks / chiffre.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1988-06-23  |  1.3 KB  |  48 lines

  1. (* ------------------------------------------------------ *)
  2. (*                    CHIFFRE.PAS                         *)
  3. (*  Prozeduren zum Ver- und Entschlüsseln von Meldungen   *)
  4. (*    (c) 1988 by Zbigniew Szakaradnik und TOOLBOX        *)
  5. (* ------------------------------------------------------ *)
  6. PROGRAM Chiffre;
  7.  
  8. TYPE strn = STRING[80];
  9.  
  10. VAR  key  : strn;
  11.  
  12. FUNCTION Encode (src: strn): strn;
  13. VAR i, ns, nr: INTEGER;
  14.     res      : strn;
  15. BEGIN
  16.   FOR i:=1 TO Length(src) DO BEGIN
  17.     ns := Ord(src[i]) - 31;
  18.     nr := Ord(Key[i Mod (Length(Key)) + 1]) - 31;
  19.     res[i] := Chr((ns + nr) Mod 224 + 31);
  20.   END;
  21.   res[0] := Chr(Length(src));
  22.   Encode := res;
  23. END;
  24.  
  25. FUNCTION Decode (src: strn): strn;
  26. VAR i, ns, nr: INTEGER;
  27.     res      : strn;
  28. BEGIN
  29.   FOR i:=1 TO Length(src) DO BEGIN
  30.     ns := Ord(src[i]) - 31;
  31.     nr := Ord(Key[i Mod (Length(Key)) + 1]) - 31;
  32.     res[i] := Chr((ns - nr + 224) Mod 224 + 31);
  33.   END;
  34.   res[0] := Chr(Length(src));
  35.   Decode := res;
  36. END;
  37.  
  38. VAR s, t, v: strn;
  39.  
  40. BEGIN
  41.   Key := 'Geheim';
  42.   t   := '(c) Zbigniew Szkaradnik';
  43.   s   := Encode(t); WriteLn(s);
  44.   v   := Decode(s); WriteLn(v);
  45.   REPEAT UNTIL KeyPressed;
  46. END.
  47. (* ------------------------------------------------------ *)
  48. (*               Ende von CHIFFRE.PAS                     *)