Aktionen

PasswortgeneratorTest: Unterschied zwischen den Versionen

Aus znilwiki

Die Seite wurde neu angelegt: „<html lang="de"> <head> <meta charset="UTF-8"> <title>Passwortgenerator</title> <style> label, input, select, textarea, button { font-family: "Consolas", monospace; margin: 5px 0; size 26; } .form-field { margin-bottom: 10px; } </style> </head> <body> <p style="font-family: "Consolas", monospace; padding: 20px; margin: 20px"> <div class="Pa…“
 
KKeine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
<html lang="de">
<html lang="de">
  <head>
   <head>
      <meta charset="UTF-8">
      <meta charset="UTF-8">
      <title>Passwortgenerator</title>
      <title>Passwortgenerator</title>
      <style>
      <style>
        label, input, select, textarea, button {
         label, input, select, textarea, button {
        font-family: "Consolas", monospace;
         font-family: "Consolas", monospace;
        margin: 5px 0;
         margin: 5px 0;
        size 26;
         font-size: 16px; /* 'size 26' ist ungültiges CSS, durch font-size ersetzt */
        }
         }
        .form-field {
         .form-field {
        margin-bottom: 10px;
         margin-bottom: 10px;
        }
         }
      </style>
         .button-group button {
  </head>
         margin-right: 10px;
  <body>
         padding: 8px 15px;
      <p style="font-family: "Consolas", monospace; padding: 20px; margin: 20px">
         cursor: pointer;
      <div class="Passwortgenerator-links" style="float: left; width: 50%;">
         }
        <div class="form-field">
      </style>
            <label for="length">Passwortlänge:</label>
   </head>
            <input type="number" id="length" value="17">
   <body>
        </div>
      <p style="font-family: 'Consolas', monospace; padding: 20px; margin: 20px">
        <div class="form-field">
      <div class="Passwortgenerator-links"  style="float: left; width: 50%;">
            <label for="vowels">Vokale:</label>
         <div class="form-field">
            <input type="text" id="vowels" value="aeiou">
            <label for="length">Passwortlänge:</label>
        </div>
            <input type="number" id="length" value="17">
        <div class="form-field">
         </div>
            <label for="consonants">Konsonanten:</label>
         <div class="form-field">
            <input type="text" id="consonants" value="bcdfghjklmnpqrstvwxyz">
            <label for="vowels">Vokale:</label>
        </div>
            <input type="text" id="vowels" value="aeiou">
        <div class="form-field">
         </div>
            <label for="digits">Zahlen:</label>
         <div class="form-field">
            <input type="text" id="digits" value="0123456789">
            <label for="consonants">Konsonanten:</label>
        </div>
            <input type="text" id="consonants" value="bcdfghjklmnpqrstvwxyz">
        <div class="form-field">
         </div>
            <label for="numDigits">Zahlen Anzahl der Stellen:</label>
         <div class="form-field">
            <input type="number" id="numDigits" value="4">
            <label for="digits">Zahlen:</label>
        </div>
            <input type="text" id="digits" value="0123456789">
        <div class="form-field">
         </div>
            <label for="specials">Sonderzeichen:</label>
         <div class="form-field">
            <input type="text" id="specials" value="!$%&/=?+*#-.">
            <label for="numDigits">Anzahl der Zahlenstellen:</label>
        </div>
            <input type="number" id="numDigits" value="4">
        <div class="form-field">
         </div>
            <label for="count">Anzahl der Passwörter:</label>
         <div class="form-field">
            <select id="count">
            <label for="specials">Sonderzeichen:</label>
              <option value="1">1</option>
            <input type="text" id="specials" value="!$%&/=?+*#-.">
              <option value="3">3</option>
         </div>
              <option value="8" selected>8</option>
         <div class="form-field">
              <option value="10">10</option>
            <label for="count">Anzahl der Passwörter:</label>
              <option value="25">25</option>
            <select id="count">
              <option value="50">50</option>
               <option value="1">1</option>
              <option value="100">100</option>
               <option value="3">3</option>
            </select>
               <option value="8" selected>8</option>
        </div>
               <option value="10">10</option>
        <div class="form-field">
               <option value="25">25</option>
            <button id="generate">Passwörter erstellen</button>
               <option value="50">50</option>
        </div>
               <option value="100">100</option>
        <div class="form-field">
            </select>
            <textarea id="output" rows="10" cols="80" placeholder="Erzeugte Passwörter erscheinen hier..."></textarea>
         </div>
        </div>
         <div class="form-field button-group">
        <script>
            <button id="generate">Passwörter erstellen</button>
            window.addEventListener("load", function() {
            <button id="save-settings">Einstellungen speichern</button>
              document.getElementById("generate").addEventListener("click", function() {
            <button id="reset-settings">Standardeinstellungen laden & Cookie löschen</button>
                // Werte aus dem Formular einlesen
         </div>
                var totalLength = parseInt(document.getElementById("length").value, 10);
         <div class="form-field">
                var vowels = document.getElementById("vowels").value;
            <textarea id="output" rows="10" cols="80" placeholder="Erzeugte Passwörter erscheinen hier..."></textarea>
                var consonants = document.getElementById("consonants").value;
         </div>
                var digitsAllowed = document.getElementById("digits").value;
         <script>
                var numDigits = parseInt(document.getElementById("numDigits").value, 10);
            // Standardwerte für das Zurücksetzen
                var specials = document.getElementById("specials").value;
            const DEFAULTS = {
                var passwordCount = parseInt(document.getElementById("count").value, 10);
              length: 17,
               
              vowels: 'aeiou',
                var output = "";
              consonants: 'bcdfghjklmnpqrstvwxyz',
               
              digits: '0123456789',
                // Hilfsfunktion: Zufälliges Zeichen aus einem String auswählen
              numDigits: 4,
                function randomChar(str) {
              specials: '!$%&/=?+*#-.'
                  return str.charAt(Math.floor(Math.random() * str.length));
            };
                }
           
               
            // Funktion zum Holen aller aktuellen Formularwerte
                // Hilfsfunktion: Erzeuge eine abwechselnde Zeichenkette (Vokal/Konsonant) der Länge "length"
            function getCurrentSettings() {
                function generateAlternatingSequence(length, vowels, consonants) {
              return {
                  if(length <= 0) return "";
                length: document.getElementById("length").value,
                  var sequence = "";
                vowels: document.getElementById("vowels").value,
                  // Zufällig entscheiden, ob mit Vokal oder Konsonant gestartet wird
                consonants: document.getElementById("consonants").value,
                  var useVowel = Math.random() < 0.5;
                digits: document.getElementById("digits").value,
                  for(var i = 0; i < length; i++){
                numDigits: document.getElementById("numDigits").value,
                    sequence += useVowel ? randomChar(vowels) : randomChar(consonants);
                specials: document.getElementById("specials").value,
                    useVowel = !useVowel;
                count: document.getElementById("count").value
                  }
              };
                  return sequence;
            }
                }
 
               
            // Funktion zum Setzen der Formularwerte
                // Passwortgenerierungsschleife
            function setFormSettings(settings) {
                for(var p = 0; p < passwordCount; p++){
              for (const key in settings) {
                  // Berechne die Länge des nicht-numerischen Teils
                const element = document.getElementById(key);
                  // noch mal 1 abziehen wegen 2. Sonderzeichen vor den Zahlen
                if (element) {
                  letterSectionLength = letterSectionLength -1;
                  element.value = settings[key];
                  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)];
            // #region Cookie-Funktionen
                  var firstPartLength = baseFirstPart + adjustment;
 
                  // Sicherstellen, dass der erste Teil in einen sinnvollen Bereich fällt
            const COOKIE_NAME = 'pwGenSettings';
                  if(firstPartLength < 0) firstPartLength = 0;
           
                  if(firstPartLength > letterSectionLength - 1) firstPartLength = letterSectionLength - 1;
            function setCookie() {
                  // Die Länge des zweiten Buchstabenteils ergibt sich aus dem Rest (ein Sonderzeichen wird noch dazwischen gesetzt)
              const settings = getCurrentSettings();
                  var secondPartLength = letterSectionLength - firstPartLength - 1;
              const json = JSON.stringify(settings);
                 
              // Encode den JSON-String und setze das Cookie (gültig für 365 Tage)
                  // Erzeuge den ersten alternierenden Buchstabenteil
              document.cookie = COOKIE_NAME + "=" + encodeURIComponent(json) + "; max-age=" + (365 * 24 * 60 * 60) + "; path=/";
                  var firstPart = generateAlternatingSequence(firstPartLength, vowels, consonants);
              alert("Einstellungen gespeichert!");
                  // Erzeuge den zweiten alternierenden Buchstabenteil
            }
                  var secondPart = generateAlternatingSequence(secondPartLength, vowels, consonants);
 
                 
            function getCookie() {
                  // Stelle sicher, dass der erste Buchstabe beider Wörter groß geschrieben wird, falls vorhanden
              const name = COOKIE_NAME + "=";
                  if(firstPart.length > 0) {
              const decodedCookie = decodeURIComponent(document.cookie);
                    firstPart = firstPart.charAt(0).toUpperCase() + firstPart.slice(1);
              const ca = decodedCookie.split(';');
                  }
              for(let i = 0; i <ca.length; i++) {
                  if(secondPart.length > 0) {
                let c = ca[i];
                    secondPart = secondPart.charAt(0).toUpperCase() + secondPart.slice(1);
                while (c.charAt(0) === ' ') {
                  }
                  c = c.substring(1);
                 
                }
                  // Zufälliges Sonderzeichen zwischen den Wörtern auswählen
                if (c.indexOf(name) === 0) {
                  var specialChar1 = randomChar(specials);
                  try {
                  // Zufälliges Sonderzeichen zwischen Wörtern und Zahl auswählen
                    // JSON-String extrahieren und parsen
                  var specialChar2 = randomChar(specials);
                    const json = c.substring(name.length, c.length);
                 
                    const settings = JSON.parse(json);
                  // Erzeuge den numerischen Teil (Ziffern)
                    setFormSettings(settings);
                  var digitSequence = "";
                    console.log("Einstellungen aus Cookie geladen.");
                  for(var d = 0; d < numDigits; d++){
                  } catch (e) {
                    digitSequence += randomChar(digitsAllowed);
                    console.error("Fehler beim Parsen des Cookies:", e);
                  }
                  }
                 
                  return true;
                  // Komplettes Passwort zusammensetzen
                }
                  var password = firstPart + specialChar1 + secondPart + specialChar2 + digitSequence;
              }
                  output += password + "\n";
              return false;
                }
            }
               
 
                // Ausgabe in das Textfeld schreiben
            function deleteCookie() {
                document.getElementById("output").value = output;
              // Setzt das max-age auf 0, um das Cookie sofort zu löschen
              });
              document.cookie = COOKIE_NAME + "=; max-age=0; path=/";
            });
              setFormSettings(DEFAULTS);
        </script>
              alert("Einstellungen auf Standard zurückgesetzt und Cookie gelöscht!");
      </div>
            }
      <div class="Passwortgenerator-rechts" style="float: right; width: 47%;">
 
        <strong>Der Passwortgenerator funktioniert nach folgenden Regeln:</strong><br>
            // #endregion Cookie-Funktionen
        <ul>
 
            <li>Hinten werden Zahlen angehängt</li>
            // #region Original-Passwortgenerator-Logik
            <li>Die Zahl besteht aus den Ziffern die in dem Feld vorkommen (man kann auch was anderes hinzufügen oder löschen)</li>
            // (Ihre Original-Logik, leicht angepasst zur Nutzung von getCurrentSettings)
            <li>Die Anzahl der Stellen ist festgelegt, z.B. auf 4</li>
 
            <li>Die Gesamtlänge - Anzahl der Stellen ergibt die Restlänge</li>
            function generatePasswordLogic() {
            <li>Von dieser Restlänge wird 2 abgezogen, 1 für das Sonderzeichen zwischen den Wörtern und 1 für das Sonderzeichen zwischen dem 2. Wort und der angehängten Zahl. Bei 17 Zeichen - 4 Zahlen - 2 Sonderzeichen bleibt also 11.</li>
                // Werte aus dem Formular einlesen (jetzt über Funktion)
            <li>Diese Restlänge wird durch 2 geteilt. Ggf. wird dabei aufgerundet. Das ergibt die Länge des ersten Wortes, z.B. 6</li>
                const settings = getCurrentSettings();
            <li>Diese Länge wird zufällig um 1 erhöht oder verringert  oder unverändert gelassen. Die neue Länge ist in diesem Beispiel also 5, 6 oder 7</li>
                var totalLength = parseInt(settings.length, 10);
            <li>Für den ersten Teil wird zufällig entschieden ob mit einem Vokal oder einen Konsonanten begonnen wird<li>
                var vowels = settings.vowels;
            <li>Es werden nun abwechseln Konsonanten und Vokale aneinander gereiht bis die Wortlänge erreicht ist</li>
                var consonants = settings.consonants;
            <li>Der erste Buchstabe wird in einen Großbuchstaben geändert</li>
                var digitsAllowed = settings.digits;
            <li>Es wird ein Sonderzeichen angehängt</li>
                var numDigits = parseInt(settings.numDigits, 10);
            <li>Das zweite Wort wird nach den gleichen Regeln wie das erste erzeugt. Also wieder zufällig ob Konsonant oder Vokal, danach abwechselnd, erster Buchstabe groß</li>
                var specials = settings.specials;
            <li>Danach wird das 2. Sonderzeichen und die Zahl angehängt</li>
                var passwordCount = parseInt(settings.count, 10);
        </ul>
                
        <br>
                var output = "";
        Das ganze habe ich erstellt weil ich sehr gerne den <a target="_blank" rel="noopener noreferrer" href="https://www.gaijin.at/de/tools/password-generator">Gaijin Password Generator</a> benutze.<br>
                
        Dort insbesondere die <b>Internet-Passwörter 3 (14 Zeichen)</b><br>
                // Hilfsfunktion: Zufälliges Zeichen aus einem String auswählen
        Wenn man aber weis das ich das gerne mache, ließen sich meine Passwörter so leicht erraten. Ich habe dann schon immer variiert bzw. mehrere dieser Kennwörter hintereinander gehängt.<br>
                function randomChar(str) {
        Der Generator hier verwendet mehr Zufälle und variiert auch die Länge der Wörter und Zahlen auf Wunsch.
                  return str.charAt(Math.floor(Math.random() * str.length));
        Ich mag einfach das dabei künstliche Wörter herauskommen die sich leichter Tippen und bei Bedarf sogar merken lassen.<br>
                }
      </div>
                
      </p>
                // Hilfsfunktion: Erzeuge eine abwechselnde Zeichenkette (Vokal/Konsonant) der Länge "length"
  </body>
                function generateAlternatingSequence(length, vowels, consonants) {
                  if(length <= 0 || (vowels.length === 0 && consonants.length === 0)) return "";
                  var sequence = "";
                  // Zufällig entscheiden, ob mit Vokal oder Konsonant gestartet wird
                  var useVowel = Math.random() < 0.5;
 
                  // Logik zur Fehlervermeidung, falls eine Zeichenart fehlt
                  if (vowels.length === 0 && consonants.length > 0) useVowel = false;
                  if (consonants.length === 0 && vowels.length > 0) useVowel = true;
 
                  for(var i = 0; i < length; i++){
                    if (useVowel && vowels.length > 0) {
                      sequence += randomChar(vowels);
                      // Nur wechseln, wenn Konsonanten verfügbar sind
                      if (consonants.length > 0) useVowel = false;
                    } else if (!useVowel && consonants.length > 0) {
                      sequence += randomChar(consonants);
                      // Nur wechseln, wenn Vokale verfügbar sind
                      if (vowels.length > 0) useVowel = true;
                    } else {
                      // Fallback: Wenn beide fehlen oder nur eine Art, die Schleife verlassen oder ein Ersatzzeichen verwenden
                      break;
                    }
                  }
                  return sequence;
                }
                
                // Passwortgenerierungsschleife
                for(var p = 0; p < passwordCount; p++){
                  // Berechne die Länge des nicht-numerischen Teils
                  // ACHTUNG: Die Zeile "letterSectionLength = letterSectionLength -1;" vor der Definition ist fehlerhaft und wurde entfernt.
                  // Die Logik besagt: Gesamt - Zahlenlänge = Restlänge (Wörter + 2 Specials)
                  var letterSectionLength = totalLength - numDigits;
                 
                  // Die Gesamtlänge der Wörter ist Restlänge - 2 Sonderzeichen
                  var totalWordLength = letterSectionLength - 2;
                  if (totalWordLength < 0) totalWordLength = 0; // Fehler abfangen, falls das Passwort zu kurz ist
                 
                  // Bestimme die Basislänge für den ersten Buchstabenteil: GesamtWortLänge geteilt durch 2, gerundet
                  var baseFirstPart = Math.round(totalWordLength / 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 > totalWordLength) firstPartLength = totalWordLength;
                 
                  // Die Länge des zweiten Buchstabenteils ergibt sich aus dem Rest
                  var secondPartLength = totalWordLength - firstPartLength;
                  
                  // 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 zwischen den Wörtern auswählen
                  var specialChar1 = specials.length > 0 ? randomChar(specials) : '';
                  // Zufälliges Sonderzeichen zwischen Wörtern und Zahl auswählen
                  var specialChar2 = specials.length > 0 ? randomChar(specials) : '';
                  
                  // Erzeuge den numerischen Teil (Ziffern)
                  var digitSequence = "";
                  for(var d = 0; d < numDigits && digitsAllowed.length > 0; d++){
                    digitSequence += randomChar(digitsAllowed);
                  }
                  
                  // Komplettes Passwort zusammensetzen
                  var password = firstPart + specialChar1 + secondPart + specialChar2 + digitSequence;
 
                  // Kürzen, falls das Passwort zu lang ist, was theoretisch passieren kann, falls totalWordLength sehr klein ist, aber numDigits groß.
                  if (password.length > totalLength) {
                    password = password.substring(0, totalLength);
                  }
                 
                  output += password + "\n";
                }
                
                // Ausgabe in das Textfeld schreiben
                document.getElementById("output").value = output;
            }
 
            // #endregion Original-Passwortgenerator-Logik
 
 
            // Event Listener einrichten
            window.addEventListener("load", function() {
              // Versuche, Einstellungen aus Cookie zu laden
              getCookie();
             
              document.getElementById("generate").addEventListener("click", generatePasswordLogic);
             
              document.getElementById("save-settings").addEventListener("click", setCookie);
 
              document.getElementById("reset-settings").addEventListener("click", deleteCookie);
            });
 
         </script>
      </div>
      <div class="Passwortgenerator-rechts" style="float: right; width: 47%;">
         <strong>Der Passwortgenerator funktioniert nach folgenden Regeln:</strong><br>
         <ul>
            <li>Hinten werden Zahlen angehängt</li>
            <li>Die Zahl besteht aus den Ziffern die in dem Feld vorkommen (man kann auch was anderes hinzufügen oder löschen)</li>
            <li>Die Anzahl der Stellen ist festgelegt, z.B. auf 4</li>
            <li>Die Gesamtlänge - Anzahl der Stellen ergibt die Restlänge (Wörter + 2 Sonderzeichen)</li>
            <li>Von dieser Restlänge wird **2 abgezogen** (1 für das Sonderzeichen zwischen den Wörtern und 1 für das Sonderzeichen zwischen dem 2. Wort und der angehängten Zahl). Bei 17 Zeichen - 4 Zahlen - 2 Sonderzeichen bleibt also **11 Buchstaben**.</li>
            <li>Diese Restlänge wird durch **2 geteilt**. Ggf. wird dabei aufgerundet. Das ergibt die Basislänge des ersten Wortes, z.B. $\text{Rund}(\frac{11}{2}) = 6$</li>
            <li>Diese Länge wird zufällig um 1 erhöht oder verringert  oder unverändert gelassen. Die neue Länge ist in diesem Beispiel also 5, 6 oder 7</li>
            <li>Für den ersten Teil wird zufällig entschieden ob mit einem Vokal oder einen Konsonanten begonnen wird<li>
            <li>Es werden nun abwechseln Konsonanten und Vokale aneinander gereiht bis die Wortlänge erreicht ist</li>
            <li>Der erste Buchstabe wird in einen Großbuchstaben geändert</li>
            <li>Es wird ein Sonderzeichen angehängt ($\text{specialChar1}$)</li>
            <li>Das zweite Wort wird nach den gleichen Regeln wie das erste erzeugt (Restlänge der Buchstaben). Also wieder zufällig ob Konsonant oder Vokal, danach abwechselnd, erster Buchstabe groß</li>
            <li>Danach wird das 2. Sonderzeichen ($\text{specialChar2}$) und die Zahl angehängt</li>
         </ul>
         <br>
         Das ganze habe ich erstellt weil ich sehr gerne den <a target="_blank" rel="noopener noreferrer" href="https://www.gaijin.at/de/tools/password-generator">Gaijin Password Generator</a> benutze.<br>
         Dort insbesondere die <b>Internet-Passwörter 3 (14 Zeichen)</b><br>
         Wenn man aber weis das ich das gerne mache, ließen sich meine Passwörter so leicht erraten. Ich habe dann schon immer variiert bzw. mehrere dieser Kennwörter hintereinander gehängt.<br>
         Der Generator hier verwendet mehr Zufälle und variiert auch die Länge der Wörter und Zahlen auf Wunsch.
         Ich mag einfach das dabei künstliche Wörter herauskommen die sich leichter Tippen und bei Bedarf sogar merken lassen.<br>
      </div>
      </p>
   </body>
</html>
</html>
----
----

Version vom 16. Dezember 2025, 12:03 Uhr

                Passwortgenerator                    

     

     

         Der Passwortgenerator funktioniert nach folgenden Regeln:
         
               
  • Hinten werden Zahlen angehängt
  •            
  • Die Zahl besteht aus den Ziffern die in dem Feld vorkommen (man kann auch was anderes hinzufügen oder löschen)
  •            
  • Die Anzahl der Stellen ist festgelegt, z.B. auf 4
  •            
  • Die Gesamtlänge - Anzahl der Stellen ergibt die Restlänge (Wörter + 2 Sonderzeichen)
  •            
  • Von dieser Restlänge wird **2 abgezogen** (1 für das Sonderzeichen zwischen den Wörtern und 1 für das Sonderzeichen zwischen dem 2. Wort und der angehängten Zahl). Bei 17 Zeichen - 4 Zahlen - 2 Sonderzeichen bleibt also **11 Buchstaben**.
  •            
  • Diese Restlänge wird durch **2 geteilt**. Ggf. wird dabei aufgerundet. Das ergibt die Basislänge des ersten Wortes, z.B. $\text{Rund}(\frac{11}{2}) = 6$
  •            
  • Diese Länge wird zufällig um 1 erhöht oder verringert  oder unverändert gelassen. Die neue Länge ist in diesem Beispiel also 5, 6 oder 7
  •            
  • Für den ersten Teil wird zufällig entschieden ob mit einem Vokal oder einen Konsonanten begonnen wird
  •            
  • Es werden nun abwechseln Konsonanten und Vokale aneinander gereiht bis die Wortlänge erreicht ist
  •            
  • Der erste Buchstabe wird in einen Großbuchstaben geändert
  •            
  • Es wird ein Sonderzeichen angehängt ($\text{specialChar1}$)
  •            
  • Das zweite Wort wird nach den gleichen Regeln wie das erste erzeugt (Restlänge der Buchstaben). Also wieder zufällig ob Konsonant oder Vokal, danach abwechselnd, erster Buchstabe groß
  •            
  • Danach wird das 2. Sonderzeichen ($\text{specialChar2}$) und die Zahl angehängt
  •          
         
         Das ganze habe ich erstellt weil ich sehr gerne den Gaijin Password Generator benutze.
         Dort insbesondere die Internet-Passwörter 3 (14 Zeichen)
         Wenn man aber weis das ich das gerne mache, ließen sich meine Passwörter so leicht erraten. Ich habe dann schon immer variiert bzw. mehrere dieser Kennwörter hintereinander gehängt.
         Der Generator hier verwendet mehr Zufälle und variiert auch die Länge der Wörter und Zahlen auf Wunsch.          Ich mag einfach das dabei künstliche Wörter herauskommen die sich leichter Tippen und bei Bedarf sogar merken lassen.
     

     

   


Changelog:

  • 22.02.2025 erste Version
  • 09.06.2025 Länge auf 17 Zeichen erhöht, 2. Sonderzeichen vor der Zahl, Beschreibung angepasst
  • 09.07.2025 Fehler Sonderzeichen behoben, es wurde 2 mal das gleiche genommen

Loading comments...