Class: PassGen





-2
Date Submitted Fri. Nov. 17th, 2006 1:55 PM
Revision 1 of 1
Beginner twice
Tags "C" ¦ "Password"
Comments 1 comments
A simple Class to generate Passwords in C#.
   
public class PassGen
    {
        //Feld: Standartlänge des Passwortes
        /// <summary>
        /// Enthält die Länge des gewünschten Passwortes
        /// </summary>
        /// <remarks>Der default Wert ist acht.</remarks>
        private int mLaenge = 8;

        //Feld: Alle möglichen Zeichen die verwendet werden können nur Buchstaben
        /// <summary>
        /// Beinhaltet alle Möglichen Zeichen, die für das Passwort verwendet werden können und dürfen.
        /// </summary>
        protected string[] mChars = {
           "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
           "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
           "1","2","3","4","5","6","7","8","9","0"
        };

        //Feld: Outputvariable in die die Ausgabe gespeichert wird
        /// <summary>
        /// Hier wird das Passwort gespeichert.
        /// </summary>
        private string mOutput;

        //Eigenschaft: setzt oder liest die länge
        /// <summary>
        /// Get-Set der Länge des Passwortes
        /// </summary>
        public int Laenge
        {
            get
            {
                return mLaenge;
            }
            set
            {
                mLaenge = value;
            }
        }

        //Eigenschaft: nur lesen des Outputs erlaubt
        /// <summary>
        /// Get-Set des Passwortes.
        /// </summary>
        public string Output
        {
            get
            {
                return mOutput;
            }
            set
            {
            }
        }

        //Case 1
        /// <summary>
        /// Generiert das Passwort aus den Zeichen 0 - 9
        /// </summary>
        /// <returns>Kein Rückgabewert</returns>
        private void GenPassNum()
        {
            int iPoint = 0; //Variable in der die Zufallszahl gespeichert wird                           
            Random rand1 = new Random(); //Erstellen der Instanz
            for (int i = 0; i < mLaenge; i++) //Solange bis die Länge erreicht ist
            {
                iPoint = rand1.Next(52, 62); //Zufallszahl zwischen 52u.61 generieren da die Zaheln im Array an der Position stehen

                if (mChars[iPoint] == "")//Falls das Array element leer ist zälen ich eins zurück um das Passwort trotzdem in voller länge zu erhalten
                {
                    i--; //MINUS 1
                }
                else
                {
                    mOutput += mChars[iPoint]; //Hier hänge ich das jeweilige Zeichen an mein Outputfeld
                }
            }
        }

        //Case 2
        /// <summary>
        /// Generiert ein Passwort aus den Zeichen A - z und 0 - 9
        /// </summary>
        /// <returns>Kein Rückgabewert</returns>
        private void GenPassAlphNum()
        {
            int iPoint = 0;
            Random rand2 = new Random();

            for (int i = 0; i < mLaenge; i++)
            {
                int modulo = i % 2;
                if (modulo == 0)
                {
                    iPoint = rand2.Next(0, 52);
                    if (mChars[iPoint] == "")
                    {
                        i--;
                    }
                    else
                    {
                        mOutput += mChars[iPoint];
                    }
                }
                else
                {
                    iPoint = rand2.Next(52, 62);
                    if (mChars[iPoint] == "")
                    {
                        i--;
                    }
                    else
                    {
                        mOutput += mChars[iPoint];
                    }
                }
            }
        }

        //Case 3
        /// <summary>
        /// Generiert ein Passwort bestehend aus den Zeichen A - z
        /// </summary>
        /// <returns>Kein Rückgabewert</returns>
        private void GenPassAlph()
        {
            int iPoint = 0;
            Random rand3 = new Random();
            for (int i = 0; i < mLaenge; i++)
            {
                iPoint = rand3.Next(0, 52);

                if (mChars[iPoint] == "")
                {
                    i--;
                }
                else
                {
                    mOutput += mChars[iPoint];
                }
            }
        }

        //Methode die anhand des Integer Wertes iCase die richtige Methode zur generierung auffruft
        public void GenPassNow(int iCase)
        {
            switch (iCase)
            {
                case 1:
                    GenPassNum();
                    break;
                case 2:
                    GenPassAlphNum();
                    break;
                case 3:
                    GenPassAlph();
                    break;
            }
        }
    }
 

Eugen Tropmann

Comments

Comments German?
Sun. Nov. 26th, 2006 4:48 PM    Helper Snyke

Voting