I think RBTI needs to step in on this sooner or later and advise. I'm sure they are probably looking at this now. Maybe I am wrong, but I thought the random function generator had some sort of trigger based on the system time it was started. I know that many, many years ago, I and some others had trouble with repeating random series, but I thought there was a fix in one of earlier versions. I am about to rewrite a random drug screening program based on this function and I need to count on it to be truly random, each time it is run. Bob C
-----Original Message----- From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of MikeB Sent: Friday, April 04, 2008 6:58 PM To: RBASE-L Mailing List Subject: [RBASE-L] - Re: Random has order ? 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] > > >

