From:	SMTP%"RELAY-INFO-VAX@CRVAX.SRI.COM" 15-JUN-1994 09:23:29.32
To:	EVERHART
CC:	
Subj:	DCL: for collecting generated passwords

From: rsimms@hubcap.clemson.edu (Robert Simms)
X-Newsgroups: comp.os.vms
Subject: DCL: for collecting generated passwords
Date: 14 Jun 94 18:18:15 GMT
Organization: Clemson University
Lines: 88
Message-Id: <rsimms.771617895@hubcap>
Nntp-Posting-Host: hubcap.clemson.edu
To: Info-VAX@CRVAX.SRI.COM
X-Gateway-Source-Info: USENET

Here's a comm proc I wrote a while back that collects generated passwords
in a file.  You can run the comm proc as often as you like and accumulate
the passwords in the same file.  I use it occasionally to search
for a cool password.  Not all the generated ones are neat or easy to remember,
so I increase my chances of finding one I like if I have a bigger list to
select from.  Also has uses as a name generator for any D&D people out there.

						- Rob

 !    File name: PASSGEN.COM
 !       Author: Robert Simms (rsimms@prism.clmeson.edu as of 1994)
 !   Consulting: Eric Bennett (geb0983@sae.towson.edu as of 1994)
 !Creation Date: 2-MAR-1989
 !     Language: DCL
 !Orig.Location: SAE
 !	 System: VAX/VMS 5.0
 !        Usage: Finding some neat nonsensical passwords, among those generated.
 !  Description: Places generated passwords in a sorted output
 !		 file, PASSGEN.OUT.  If the file already exists
 !		 then passwords will be added to same and merge-sorted.
 !		 The number of passwords generated is 5 times the loop count.
 !		 LOGINS will be DISABLED for the user i.d. that is the
 !		 owner of this batch process, until it is done.  This comm.
 !		 proc. does not change the password, but it does use the
 !		 SET PASSWORD command, which blocks logins until done.
 !		 Minimum count is 2.  An input of 1 will be changed to a 2.
$ verify_was_on = F$VERIFY("NO")
$ IF F$MODE() .EQS. "BATCH" THEN GOTO batch
$ esc[0,8]=27
$ ctrln[0,8]=%XE
$ ctrlo[0,8]=%XF
$ w := WRITE sys$output
$ w esc,"[2J''esc'[H''esc'(B''esc')0''ctrln'''esc'[25Clqqqqqqqqqqqqqqqqqqqqk"
$ w esc,"[25Cx''ctrlo'''esc'[1m Password Generator ''esc'[m''ctrln'x"
$ w esc,"[25Cmqqqqqqqqqqqqqqqqqqqqj''ctrlo'''esc'E"
$ INQUIRE num "5x loop count"
$ IF num .LT. 1 THEN GOTO quit_interactive
$ def = F$ENVIRONMENT("DEFAULT")
$ w ""
$ SUBMIT 'F$ENVIRONMENT("PROCEDURE")' /PARAMETERS=("''def'",'num') -
	/NOLOG/NOTIFY/NAME=PASSGEN/PRIORITY=0
$quit_interactive:
$ w ""
$ w "Output will appear in the file []passgen.out"
$ w ""
$ IF verify_was_on THEN SET VERIFY
$ EXIT
 !
$batch:
$ SET PROC/NAME="PassGen"
$ SET DEFAULT 'p1'
$ ON SEVERE_ERROR THEN EXIT
$ ON ERROR THEN GOTO essentials
$ SET NOCONTROL
$ SET NOON
$ num = F$INTEGER(p2)
$ OPEN /WRITE out _PASSIN.DAT
$ n = 1
$loop:
$ n=n+1
$ WRITE out ""
$ IF n .LT. num THEN GOTO loop
$ CLOSE out
 !
$ ASSIGN/USER _PASSGEN.DAT sys$output
$ ASSIGN/USER _PASSIN.DAT  sys$input
$ SET PASSWORD/GENERATE
$ SET ON
$ SORT /NODUP _PASSGEN.DAT _PASSOUT.TMP
$ DELETE _PASSGEN.DAT;*
$ IF F$SEARCH("PASSGEN.OUT") .NES. ""
$ THEN
$	MERGE/NODUP _PASSOUT.TMP,PASSGEN.OUT PASSGEN.OUT
$	DELETE _PASSOUT.TMP;*
$	PURGE PASSGEN.OUT
$ ELSE
$	RENAME _PASSOUT.TMP PASSGEN.OUT
$ ENDIF
$ RENAME PASSGEN.OUT PASSGEN.OUT;1
$ SET FILE/TRUNCATE PASSGEN.OUT
 !
$essentials:
$ DELETE _PASSIN.DAT;*
$ IF F$SEARCH("_PASSGEN.DAT") .NES. "" THEN DELETE _PASSGEN.DAT;*
$ SET CONTROL
$ IF verify_was_on THEN SET VERIFY
$EXIT


