Navigation  without Java Scripts

Source code to password generation

/*****************************************************************************

		Copyright (c) 1998 Prolog Development Center A/S

 Project:  PW
 FileName: PW.PRO
 Purpose: Generate a password
 Written by: Leo Schou-Jensen

******************************************************************************/


/******************************************************************************
	Pick a random character from a string
******************************************************************************/

predicates
  ranchar(string,char)
clauses
  ranchar(S,Char):-
	str_len(S,N),
	random(N,RanNo),
	Index = RanNo+1,
	subchar(S,Index,Char).


/******************************************************************************
	Perform random conversion of a character to uppercase
******************************************************************************/

predicates
 ranupper(char,char)
clauses
 ranupper(CH,CH):-
	random(2,X),X=0,!.
 ranupper(CH,UpperCH):-
	upper_lower(UpperCh,CH).


/******************************************************************************
	Generate a password on the form
consonant(maybe in uppercase) vowel consonant digit digit 
				consonant(maybe in uppercase) vowel consonant 
******************************************************************************/

predicates
  genpw(STRING)
clauses
  genpw(PW):-
	Vowels = "aeiouy",
	Consonants = "bcdfghjklmnpqrstvx",
	Digits = "0123456789",
	ranchar(Consonants,TC1), ranupper(TC1,C1),
	ranchar(Vowels,C2),
	ranchar(Consonants,C3),
	ranchar(Digits,C4),
	ranchar(Digits,C5),
	ranchar(Consonants,TC6), ranupper(TC6,C6),
	ranchar(Vowels,C7),
	ranchar(Consonants,C8),
             format(PW,"%c%c%c%c%c%c%c%c",C1,C2,C3,C4,C5,C6,C7,C8).

/******************************************************************************
	Initialize Random and the Script
******************************************************************************/
goal
	time(Hours,Minutes,Seconds,Hundredths),
	Value = 100*(60*(60*Hours+Minutes)+Seconds)+Hundredths,
	randominit(Value),
	write("Content-type: text/html\n\n"),
	write("<html>\n"),
	write("<body>\n"),
	write("<H1>Password generation</H1><hr>\n"),
	genpw(PW),
	write("<H2>New Passwork: ",PW,"</H2>\n"),
	write("<P>(Use refresh to generate new passwords!)</P>\n"),
	write("</body>\n"),
	write("</html>\n").