Aktionen

Passwortgenerator: Unterschied zwischen den Versionen

Aus znilwiki

KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 69: Zeile 69:
    
    
   <script>
   <script>
     document.getElementById("generate").addEventListener("click", function() {
     window.addEventListener("load", function() {
      // Werte aus dem Formular einlesen
      document.getElementById("generate").addEventListener("click", function() {
      var totalLength = parseInt(document.getElementById("length").value, 10);
        // Werte aus dem Formular einlesen
      var vowels = document.getElementById("vowels").value;
        var totalLength = parseInt(document.getElementById("length").value, 10);
      var consonants = document.getElementById("consonants").value;
        var vowels = document.getElementById("vowels").value;
      var digitsAllowed = document.getElementById("digits").value;
        var consonants = document.getElementById("consonants").value;
      var numDigits = parseInt(document.getElementById("numDigits").value, 10);
        var digitsAllowed = document.getElementById("digits").value;
      var specials = document.getElementById("specials").value;
        var numDigits = parseInt(document.getElementById("numDigits").value, 10);
      var passwordCount = parseInt(document.getElementById("count").value, 10);
        var specials = document.getElementById("specials").value;
     
        var passwordCount = parseInt(document.getElementById("count").value, 10);
      var output = "";
       
     
        var output = "";
      // Hilfsfunktion: Zufälliges Zeichen aus einem String auswählen
       
      function randomChar(str) {
        // Hilfsfunktion: Zufälliges Zeichen aus einem String auswählen
        return str.charAt(Math.floor(Math.random() * str.length));
        function randomChar(str) {
      }
          return str.charAt(Math.floor(Math.random() * str.length));
     
        }
      // Hilfsfunktion: Erzeuge eine abwechselnde Zeichenkette (Vokal/Konsonant) der Länge "length"
       
      function generateAlternatingSequence(length, vowels, consonants) {
        // Hilfsfunktion: Erzeuge eine abwechselnde Zeichenkette (Vokal/Konsonant) der Länge "length"
        if(length <= 0) return "";
        function generateAlternatingSequence(length, vowels, consonants) {
        var sequence = "";
          if(length <= 0) return "";
        // Zufällig entscheiden, ob mit Vokal (true) oder Konsonant (false) gestartet wird
          var sequence = "";
        var useVowel = Math.random() < 0.5;
          // Zufällig entscheiden, ob mit Vokal oder Konsonant gestartet wird
        for(var i = 0; i < length; i++){
          var useVowel = Math.random() < 0.5;
          sequence += useVowel ? randomChar(vowels) : randomChar(consonants);
          for(var i = 0; i < length; i++){
          useVowel = !useVowel;
            sequence += useVowel ? randomChar(vowels) : randomChar(consonants);
            useVowel = !useVowel;
          }
          return sequence;
         }
         }
        return sequence;
      }
     
      // Passwortgenerierungsschleife
      for(var p = 0; p < passwordCount; p++){
        // Berechne die Länge des nicht-numerischen Teils
        var letterSectionLength = totalLength - numDigits;
        // Bestimme die Basislänge für den ersten Buchstabenteil: (letterSectionLength - 1) geteilt durch 2, gerundet
        var baseFirstPart = Math.round((letterSectionLength - 1) / 2);
        // Zufällige Anpassung um -1, 0 oder 1
        var adjustment = [-1, 0, 1][Math.floor(Math.random() * 3)];
        var firstPartLength = baseFirstPart + adjustment;
        // Sicherstellen, dass der erste Teil in einen sinnvollen Bereich fällt
        if(firstPartLength < 0) firstPartLength = 0;
        if(firstPartLength > letterSectionLength - 1) firstPartLength = letterSectionLength - 1;
        // Die Länge des zweiten Buchstabenteils ergibt sich aus dem Rest (ein Sonderzeichen wird noch dazwischen gesetzt)
        var secondPartLength = letterSectionLength - firstPartLength - 1;
          
          
         // Erzeuge den ersten alternierenden Buchstabenteil
         // Passwortgenerierungsschleife
        var firstPart = generateAlternatingSequence(firstPartLength, vowels, consonants);
        for(var p = 0; p < passwordCount; p++){
        // Zufälliges Sonderzeichen auswählen
          // Berechne die Länge des nicht-numerischen Teils
        var specialChar = randomChar(specials);
          var letterSectionLength = totalLength - numDigits;
        // Erzeuge den zweiten alternierenden Buchstabenteil
          // Bestimme die Basislänge für den ersten Buchstabenteil: (letterSectionLength - 1) geteilt durch 2, gerundet
        var secondPart = generateAlternatingSequence(secondPartLength, vowels, consonants);
          var baseFirstPart = Math.round((letterSectionLength - 1) / 2);
        // Erzeuge den numerischen Teil (Ziffern)
          // Zufällige Anpassung um -1, 0 oder 1
        var digitSequence = "";
          var adjustment = [-1, 0, 1][Math.floor(Math.random() * 3)];
        for(var d = 0; d < numDigits; d++){
          var firstPartLength = baseFirstPart + adjustment;
          digitSequence += randomChar(digitsAllowed);
          // Sicherstellen, dass der erste Teil in einen sinnvollen Bereich fällt
          if(firstPartLength < 0) firstPartLength = 0;
          if(firstPartLength > letterSectionLength - 1) firstPartLength = letterSectionLength - 1;
          // Die Länge des zweiten Buchstabenteils ergibt sich aus dem Rest (ein Sonderzeichen wird noch dazwischen gesetzt)
          var secondPartLength = letterSectionLength - firstPartLength - 1;
         
          // Erzeuge den ersten alternierenden Buchstabenteil
          var firstPart = generateAlternatingSequence(firstPartLength, vowels, consonants);
          // Erzeuge den zweiten alternierenden Buchstabenteil
          var secondPart = generateAlternatingSequence(secondPartLength, vowels, consonants);
         
          // Stelle sicher, dass der erste Buchstabe beider Wörter groß geschrieben wird, falls vorhanden
          if(firstPart.length > 0) {
            firstPart = firstPart.charAt(0).toUpperCase() + firstPart.slice(1);
          }
          if(secondPart.length > 0) {
            secondPart = secondPart.charAt(0).toUpperCase() + secondPart.slice(1);
          }
         
          // Zufälliges Sonderzeichen auswählen
          var specialChar = randomChar(specials);
         
          // Erzeuge den numerischen Teil (Ziffern)
          var digitSequence = "";
          for(var d = 0; d < numDigits; d++){
            digitSequence += randomChar(digitsAllowed);
          }
         
          // Komplettes Passwort zusammensetzen
          var password = firstPart + specialChar + secondPart + digitSequence;
          output += password + "\n";
         }
         }
          
          
         // Komplettes Passwort zusammensetzen
         // Ausgabe in das Textfeld schreiben
        var password = firstPart + specialChar + secondPart + digitSequence;
        document.getElementById("output").value = output;
        output += password + "\n";
      });
      }
     
      // Ausgabe in das Textfeld schreiben
      document.getElementById("output").value = output;
     });
     });
   </script>
   </script>

Version vom 22. Februar 2025, 15:16 Uhr

Passwortgenerator