For a verification Key I needed a random string, which I was implementing like this:
// iType: 0 -> all syblos allowed
// 1 -> alphanumeric
// 2 -> alpha
// 3 -> numeric
CString RandomString( int iLength, int iType )
{
CString strReturn;
CString strLocal;
for( int i = 0 ; i < iLength ; ++i )
{
int iNumber;
// Seed the random-number generator with TickCount so that
// the numbers will be different every time we run.
srand( (unsigned int)( (i+1)*iLength*GetTickCount() ) );
switch( iType )
{
case 1:
iNumber = rand()%122;
if( 48 > iNumber )
iNumber += 48;
if( ( 57 < iNumber ) &&
( 65 > iNumber ) )
iNumber += 7;
if( ( 90 < iNumber ) &&
( 97 > iNumber ) )
iNumber += 6;
strReturn += (char)iNumber;
break;
case 2:
iNumber = rand()%122;
if( 65 > iNumber )
iNumber = 65 + iNumber%56;
if( ( 90 < iNumber ) &&
( 97 > iNumber ) )
iNumber += 6;
strReturn += (char)iNumber;
break;
case 3:
strLocal.Format(“%i”, rand()%9 );
strReturn += strLocal;
break;
default:
strReturn += (char)rand();
break;
}
}
return strReturn;
}
Bugs and Improvements:
Please report all bugs and improvements to me, thanks and enjoy it.
Last updated: 12 June 1998