Random String Generator

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




Comments

  • Thank you

    Posted by rm_pkt on 03/27/2006 05:57am

    Nice code. I really enjoyed it

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Packaged application development teams frequently operate with limited testing environments due to time and labor constraints. By virtualizing the entire application stack, packaged application development teams can deliver business results faster, at higher quality, and with lower risk.

  • With 81% of employees using their phones at work, companies have stopped asking: "Is corporate data leaking from personal devices?" and started asking: "How do we effectively prevent corporate data from leaking from personal devices?" The answer has not been simple. ZixOne raises the bar on BYOD security by not allowing email data to reside on the device. In addition, Zix allows employees to maintain complete control of their personal device, therefore satisfying privacy demands of valued employees and the …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds