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

    {
    The example that changes color and echos '*'s is nice, but does it compensate
    for delete/backspace/enter keypresses?

    The one I posted was intended when I wrote it to be a UNIX like password
    input, where the cursor just sits there and doesn't react.

    Does anyone want a simple password entry/encryption unit?

    (I'll give it to you anyways.. ) :)

    --CUT HERE-- }
    unit crypt;
    {AmoebOS v1.0 - Password/Cryyptography unit}

    {Simple password entry and encryption routines}
    {(C)1994 Matt Sottile/RAMSoft! Freeware}
    {Please notify the author if you use or modify this unit in any way}
    {Internet mail : matts@caeser.geog.pdx.edu or matts@psg.com}
    {                ramsoft@industrial.com}

    interface

    function noecho(pmt : string) : string;
    function pwcrypt(op : string) : string;

    implementation

    uses Crt, Dos;

    function noecho(pmt : string) : string;
    var
     ch : char;
     d : boolean;
     temp, st : string;
    begin
     write(pmt);
     d := false;
     temp := '';
     st := '';
     repeat
      temp := st;
      repeat until keypressed;
      ch := readkey;
      if (ch = chr(8)) then st := temp;
      if (ch = chr(13)) then d := true;
      if not ((ch = chr(8)) and (ch = chr(13))) then st := st+ch;
     until d = true;
     noecho := temp;
     writeln;
    end;

    function pwcrypt(op : string) : string;
    var
     ptr : integer;
     ip : string;
    begin
     ip := '';
     ptr := 1;
     repeat
      ip := ip+chr(((ord(op[ptr])+ord(op[length(op)-ptr]) xor length(op))));
      ip[ptr] := chr(ord(ip[ptr])+2);
      inc(ptr);
     until ptr = length(op)+1;
     pwcrypt := ip;
    end;

    begin
    end.

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