A Further test of 200 passwords produced 1 duplicate. YMMV

----- Original Message ----- 
From: "MikeB" <[EMAIL PROTECTED]>
To: "RBASE-L Mailing List" <[email protected]>
Sent: Friday, April 04, 2008 6:51 PM
Subject: [RBASE-L] - Re: Random has order ?


> Frank,
>  Try this using the new DLCALL functions in RBASE
>
>
> {These two must be declared only ONCE in an RBASE SESSION}
>  STDCALL function 'GetTickCount' () : integer
>  STDCALL void 'Sleep' (integer)
> {
>  "We get the last two numbers from the TickCount, test if they are between
>   Ascii 65 and 90, if success, then add to String vPASS.  If String is
>   vPassLength, then write to file.  It takes a couple of minutes to
>   generate 80 passwords. In my test, there were no Dupes.  I used RBASE
>   RANDOM function to make the Sleep API vary so the GetTickCount would be
>   more random as well.
> }
>
>
> IF (chkvar('vsleep')) = 0 THEN
>  SET VAR vsleep INTEGER = 100
> ENDIF
>
> Set var vMaxWordsToGen integer = 80
> Set var vPassLength integer = 8
> SET VAR vret INTEGER = 0
> SET VAR i INTEGER = 0
> SET VAR vpass TEXT = NULL
> SET VAR vgettick INTEGER = NULL
> SET VAR vtext TEXT = ''
> SET VAR vascii INTEGER = 0
> OUTPUT holdrand.csv
>
>
> WHILE i < .vMaxWordsToGen THEN
>  SET VAR vsleep = (RANDOM(50))
>  SET VAR vret = (dlcall('Kernel32','Sleep', vsleep))
>  SET VAR vgettick = (dlcall('Kernel32','GetTickCount'))
>  SET VAR vtext = (CTXT(.vgettick))
>  SET VAR vascii = (INT((SGET(.vtext ,2, (SLEN(.vtext)) - 1))))
>  IF vascii BETWEEN 65 AND 90 THEN
>    SET VAR vpass = (.vpass + (CHAR(.vascii)))
>  ENDIF
>  IF (SLEN(.vpass)) = .vPassLength THEN
>    WRITE .vpass
>    SET VAR vpass = ''
>    SET VAR i = (.i + 1)
>  ENDIF
> ENDWHILE
> OUTPUT SCREEN
> RETURN
>
> ----- Original Message ----- 
> From: "Frank Taylor" <[EMAIL PROTECTED]>
> To: "RBASE-L Mailing List" <[email protected]>
> Sent: Friday, April 04, 2008 3:59 PM
> Subject: [RBASE-L] - Random has order ?
>
>
> I created a password generator the other day using the Random command as such
>
>      SET VAR gen1 = (RANDOM(33))
>      IF gen1 BETWEEN 1 AND 24 THEN
>            SET VAR gen2 = (RANDOM(2))
>      ENDIF
>
> The code loops 8 times and uses the values of gen1 and gen2 with a case 
> statement to make an 8 character password. The first random generated gives 
> me either a letter or number and the second random generator gives me upper 
> or lower case if it is to be a letter (I do not use L,O or Zero in case you 
> are wondering)
>
> I used the code to generate 7 passwords yesterday, then today I used the code 
> to generate 8 more passwords.. When I went back to look at them, the first 7 
> passwords I created today, were the exact same and in the same order as the 
> Seven I created yesterday.  I went out of RBase and came back in and sure 
> enough it started over..  So can I assume that Random is not really random 
> but has order ?  Anyone have a suggestion as a work around, maybe using a 
> system variable in the mix ?
>
> Using RB7.6  ver 7.6.3.30321
>
>
> n  Frank
>
> Frank Taylor - Information Systems Administrator
> F.J. O'Hara & Sons, Inc - Araho Transfer Inc.
> Boston, MA - Rockland, ME - Miami, FL
> Direct Dial - 617-790-3093
> email: [EMAIL PROTECTED]
>
>
> 


Reply via email to