C# :: Aufgabe #77 :: Lösung #12

14 Lösungen Lösungen öffentlich
#77

Passwortgenerator mit Parametern

Anfänger - C# von pocki - 27.11.2014 um 18:11 Uhr
Erstelle ein Programm/Funktion welche/s ein zufälliges Passwort erzeugt.
Als Parameter soll die Länge sowie die Art der darin vorkommenden Zeichen übergeben werden können.
Zur Auswahl sollen stehen: Kleinbuchstaben, Großbuchstaben, Zahlen und Sonderzeichen.
Jede beliebige Kombination der Parameter soll möglich sein.
#12
vote_ok
von art1808 (60 Punkte) - 25.04.2018 um 16:03 Uhr
Quellcode ausblenden C#-Code
/*
 * Password Generator
 * Date: 25042018
 * Author: art1808
 *
 * Inputs:
 *      Length
 *      Char Upper
 *      Char Lower
 *      Special Char
 *      Button Generate PW
 *      Button Copy to Clipboard
 *      Button Clear
 */
 


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PasswordGenerator
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //Input
        public int Len { get; set; }
        public bool Numbers { get; set; }
        public bool CharUpper { get; set; }
        public bool CharLower { get; set; }
        public bool SpecialChar { get; set; }
        public int CurrentChecks { get; set; }

        //Password
        public string Password { get; set; }

        private void btnCreate_Click(object sender, EventArgs e)
        {
            if (Numbers == true || CharUpper == true || CharLower == true || SpecialChar == true)
            {
                Password = "";
                CurrentChecks = 0;

                char[] passwordChar = new char[105];
                int counter = 0;
                int.TryParse(numLenNum.Value.ToString(), out int len);
                Len = len;

                if (Numbers)
                    CurrentChecks++;
                if (CharUpper)
                    CurrentChecks++;
                if (CharLower)
                    CurrentChecks++;
                if (SpecialChar)
                    CurrentChecks++;


                Random rnd = new Random();
                int rndNo = 0;
                int rndCharU = 0;
                int rndCharL = 0;
                int rndSpeChar = 0;
                int rndPW = 0;
                while (len > 0)
                {
                    if (Numbers == true)
                    {
                        rndNo = rnd.Next(0, 10);
                        switch (rndNo)
                        {
                            case 0:
                                passwordChar[counter] = '0';
                                counter++;
                                break;
                            case 1:
                                passwordChar[counter] = '1';
                                counter++;
                                break;
                            case 2:
                                passwordChar[counter] = '2';
                                counter++;
                                break;
                            case 3:
                                passwordChar[counter] = '3';
                                counter++;
                                break;
                            case 4:
                                passwordChar[counter] = '4';
                                counter++;
                                break;
                            case 5:
                                passwordChar[counter] = '5';
                                counter++;
                                break;
                            case 6:
                                passwordChar[counter] = '6';
                                counter++;
                                break;
                            case 7:
                                passwordChar[counter] = '7';
                                counter++;
                                break;
                            case 8:
                                passwordChar[counter] = '8';
                                counter++;
                                break;
                            case 9:
                                passwordChar[counter] = '9';
                                counter++;
                                break;
                        }
                    }

                    if (CharUpper == true)
                    {
                        rndCharU = rnd.Next(0, 26);
                        switch (rndCharU)
                        {
                            case 0:
                                passwordChar[counter] = 'A';
                                counter++;
                                break;
                            case 1:
                                passwordChar[counter] = 'B';
                                counter++;
                                break;
                            case 2:
                                passwordChar[counter] = 'C';
                                counter++;
                                break;
                            case 3:
                                passwordChar[counter] = 'D';
                                counter++;
                                break;
                            case 4:
                                passwordChar[counter] = 'E';
                                counter++;
                                break;
                            case 5:
                                passwordChar[counter] = 'F';
                                counter++;
                                break;
                            case 6:
                                passwordChar[counter] = 'G';
                                counter++;
                                break;
                            case 7:
                                passwordChar[counter] = 'H';
                                counter++;
                                break;
                            case 8:
                                passwordChar[counter] = 'I';
                                counter++;
                                break;
                            case 9:
                                passwordChar[counter] = 'J';
                                counter++;
                                break;
                            case 10:
                                passwordChar[counter] = 'K';
                                counter++;
                                break;
                            case 11:
                                passwordChar[counter] = 'L';
                                counter++;
                                break;
                            case 12:
                                passwordChar[counter] = 'M';
                                counter++;
                                break;
                            case 13:
                                passwordChar[counter] = 'N';
                                counter++;
                                break;
                            case 14:
                                passwordChar[counter] = 'O';
                                counter++;
                                break;
                            case 15:
                                passwordChar[counter] = 'P';
                                counter++;
                                break;
                            case 16:
                                passwordChar[counter] = 'Q';
                                counter++;
                                break;
                            case 17:
                                passwordChar[counter] = 'R';
                                counter++;
                                break;
                            case 18:
                                passwordChar[counter] = 'S';
                                counter++;
                                break;
                            case 19:
                                passwordChar[counter] = 'T';
                                counter++;
                                break;
                            case 20:
                                passwordChar[counter] = 'U';
                                counter++;
                                break;
                            case 21:
                                passwordChar[counter] = 'V';
                                counter++;
                                break;
                            case 22:
                                passwordChar[counter] = 'W';
                                counter++;
                                break;
                            case 23:
                                passwordChar[counter] = 'X';
                                counter++;
                                break;
                            case 24:
                                passwordChar[counter] = 'Y';
                                counter++;
                                break;
                            case 25:
                                passwordChar[counter] = 'Z';
                                counter++;
                                break;

                        }
                    }

                    if (CharLower == true)
                    {
                        rndCharL = rnd.Next(0, 26);
                        switch (rndCharU)
                        {
                            case 0:
                                passwordChar[counter] = 'a';
                                counter++;
                                break;
                            case 1:
                                passwordChar[counter] = 'b';
                                counter++;
                                break;
                            case 2:
                                passwordChar[counter] = 'c';
                                counter++;
                                break;
                            case 3:
                                passwordChar[counter] = 'd';
                                counter++;
                                break;
                            case 4:
                                passwordChar[counter] = 'e';
                                counter++;
                                break;
                            case 5:
                                passwordChar[counter] = 'f';
                                counter++;
                                break;
                            case 6:
                                passwordChar[counter] = 'g';
                                counter++;
                                break;
                            case 7:
                                passwordChar[counter] = 'h';
                                counter++;
                                break;
                            case 8:
                                passwordChar[counter] = 'i';
                                counter++;
                                break;
                            case 9:
                                passwordChar[counter] = 'j';
                                counter++;
                                break;
                            case 10:
                                passwordChar[counter] = 'k';
                                counter++;
                                break;
                            case 11:
                                passwordChar[counter] = 'l';
                                counter++;
                                break;
                            case 12:
                                passwordChar[counter] = 'm';
                                counter++;
                                break;
                            case 13:
                                passwordChar[counter] = 'n';
                                counter++;
                                break;
                            case 14:
                                passwordChar[counter] = 'o';
                                counter++;
                                break;
                            case 15:
                                passwordChar[counter] = 'p';
                                counter++;
                                break;
                            case 16:
                                passwordChar[counter] = 'q';
                                counter++;
                                break;
                            case 17:
                                passwordChar[counter] = 'r';
                                counter++;
                                break;
                            case 18:
                                passwordChar[counter] = 's';
                                counter++;
                                break;
                            case 19:
                                passwordChar[counter] = 't';
                                counter++;
                                break;
                            case 20:
                                passwordChar[counter] = 'u';
                                counter++;
                                break;
                            case 21:
                                passwordChar[counter] = 'v';
                                counter++;
                                break;
                            case 22:
                                passwordChar[counter] = 'w';
                                counter++;
                                break;
                            case 23:
                                passwordChar[counter] = 'x';
                                counter++;
                                break;
                            case 24:
                                passwordChar[counter] = 'y';
                                counter++;
                                break;
                            case 25:
                                passwordChar[counter] = 'z';
                                counter++;
                                break;

                        }
                    }

                    if (SpecialChar == true)
                    {
                        rndSpeChar = rnd.Next(0, 11);
                        switch (rndSpeChar)
                        {
                            case 0:
                                passwordChar[counter] = '?';
                                counter++;
                                break;
                            case 1:
                                passwordChar[counter] = '!';
                                counter++;
                                break;
                            case 2:
                                passwordChar[counter] = '$';
                                counter++;
                                break;
                            case 3:
                                passwordChar[counter] = '%';
                                counter++;
                                break;
                            case 4:
                                passwordChar[counter] = '=';
                                counter++;
                                break;
                            case 5:
                                passwordChar[counter] = '*';
                                counter++;
                                break;
                            case 6:
                                passwordChar[counter] = '+';
                                counter++;
                                break;
                            case 7:
                                passwordChar[counter] = ';';
                                counter++;
                                break;
                            case 8:
                                passwordChar[counter] = ':';
                                counter++;
                                break;
                            case 9:
                                passwordChar[counter] = '-';
                                counter++;
                                break;
                            case 10:
                                passwordChar[counter] = '_';
                                counter++;
                                break;
                        }
                    }

                    len -= CurrentChecks;
                }

                len = Len;

                while (len > 0)
                {
                    rndPW = rnd.Next(0, Len);

                    Password += passwordChar[rndPW].ToString();
                    len -= 1;
                }

                txtbPassword.Text = Password;
            }
            else
                MessageBox.Show("Keine Wertebereiche ausgewählt");
        }

        private void cbxNumbers_CheckedChanged(object sender, EventArgs e)
        {
            if (cbxNumbers.Checked == true)
                Numbers = true;
            else
                Numbers = false;
        }

        private void cbxCharactersUpper_CheckedChanged(object sender, EventArgs e)
        {
            if (cbxCharactersUpper.Checked == true)
                CharUpper = true;
            else
                CharUpper = false;
        }

        private void cbxCharactersLower_CheckedChanged(object sender, EventArgs e)
        {
            if (cbxCharactersLower.Checked == true)
                CharLower = true;
            else
                CharLower = false;
        }

        private void cbxSpecialCharacter_CheckedChanged(object sender, EventArgs e)
        {
            if (cbxSpecialCharacter.Checked == true)
                SpecialChar = true;
            else
                SpecialChar = false;
        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            txtbPassword.Clear();
        }

        private void btnCopy_Click(object sender, EventArgs e)
        {
            Clipboard.SetText(txtbPassword.Text);
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben