home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 8
/
FreshFishVol8-CD2.bin
/
bbs
/
dev
/
oberon-a-1.4ß.lha
/
Oberon-A
/
source
/
Misc
/
GenPasswd.mod
next >
Wrap
Text File
|
1994-08-08
|
2KB
|
92 lines
(*
$RCSfile: GenPasswd.mod $
Description: Unix password generator.
Created by: fjc (Frank Copeland)
$Revision: 1.2 $
$Author: fjc $
$Date: 1994/06/05 22:24:19 $
Copyright © 1994, Frank Copeland.
This file is part of Oberon-A.
See Oberon-A.doc for conditions of use and distribution.
Log entries are at the end of the file.
I wrote this program after I apparently had my university account broken
into. It simply generates a random string of characters of a given
length.
*)
MODULE GenPasswd;
(*$P-*)
IMPORT Errors, Args, RN := RandomNumbers, IO := StdIO;
CONST
VersionTag = "\0$VER: GenPasswd 1.1 (5.6.94)";
VersionStr = "GenPasswd 1.1 (5 Jun 1994)\r\n";
CopyrightStr = "Copyright © 1993-1994 Frank Copeland\n\n";
CONST
startChar = ORD ("!");
range = ORD ("~") - ORD ("!") + 1;
VAR i, j, numChars, count : LONGINT;
(*------------------------------------*)
(*$D-*)
PROCEDURE StrToInt (s : ARRAY OF CHAR) : LONGINT;
VAR i, j : LONGINT;
BEGIN (* StrToInt *)
i := 0; j := 0;
WHILE s [i] # 0X DO
IF (s[i] < "0") OR (s[i] > "9") THEN
IO.WriteStr (" !! Error: Illegal char in parameter\n");
HALT (20)
END;
j := (j * 10) + (ORD (s[i]) - ORD ("0"));
INC (i)
END;
RETURN j
END StrToInt;
BEGIN
IO.WriteStr (VersionStr);
IO.WriteStr (CopyrightStr);
IF Args.argc = 1 THEN
count := 1; numChars := 8
ELSIF Args.argc = 2 THEN
count := 1; numChars := StrToInt (Args.argv [1]^)
ELSIF Args.argc = 3 THEN
numChars := StrToInt (Args.argv [1]^);
count := StrToInt (Args.argv [2]^)
ELSE
IO.WriteStr ("Usage: GenPasswd [<password length>] [<# of passwords>]");
HALT (10)
END;
RN.TimeSeed;
FOR i := 1 TO count DO
FOR j := 1 TO numChars DO
IO.Write (CHR (ENTIER (RN.Uniform () * range) + startChar))
END;
IO.WriteLn()
END
END GenPasswd.
(***************************************************************************
$Log: GenPasswd.mod $
Revision 1.2 1994/06/05 22:24:19 fjc
- Added count parameter
Revision 1.1 1994/05/12 20:20:07 fjc
- Prepared for release
***************************************************************************)