Passwortgenerator: Unterschied zwischen den Versionen
Aus znilwiki
BLinz (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
BLinz (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
<html lang="de"> | <html lang="de"> | ||
<head> | <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> | </head> | ||
<body> | <body> | ||
<p style="font-family: "Consolas", monospace; padding: 20px; margin: 20px"> | <p style="font-family: "Consolas", monospace; padding: 20px; margin: 20px"> | ||
<div class="Passwortgenerator-links" style="float: left; width: 50%;"> | <div class="Passwortgenerator-links" style="float: left; width: 50%;"> | ||
<div class="form-field"> | |||
<label for="length">Passwortlänge:</label> | |||
<input type="number" id="length" value="16"> | |||
</div> | |||
<div class="form-field"> | |||
<label for="vowels">Vokale:</label> | |||
<input type="text" id="vowels" value="aeiou"> | |||
</div> | |||
<div class="form-field"> | |||
<label for="consonants">Konsonanten:</label> | |||
<input type="text" id="consonants" value="bcdfghjklmnpqrstvwxyz"> | |||
</div> | |||
<div class="form-field"> | |||
<label for="digits">Zahlen:</label> | |||
<input type="text" id="digits" value="0123456789"> | |||
</div> | |||
<div class="form-field"> | |||
<label for="numDigits">Zahlen Anzahl der Stellen:</label> | |||
<input type="number" id="numDigits" value="4"> | |||
</div> | |||
<div class="form-field"> | |||
<label for="specials">Sonderzeichen:</label> | |||
<input type="text" id="specials" value="!$%&/=?+*#-."> | |||
</div> | |||
<div class="form-field"> | |||
<label for="count">Anzahl der Passwörter:</label> | |||
<select id="count"> | |||
<option value="1">1</option> | |||
<option value="3">3</option> | |||
<option value="8" selected>8</option> | |||
<option value="10">10</option> | |||
<option value="25">25</option> | |||
<option value="50">50</option> | |||
<option value="100">100</option> | |||
</select> | |||
</div> | |||
<div class="form-field"> | |||
<button id="generate">Passwörter erstellen</button> | |||
</div> | |||
<div class="form-field"> | |||
<textarea id="output" rows="10" cols="80" placeholder="Erzeugte Passwörter erscheinen hier..."></textarea> | |||
</div> | |||
<script> | |||
window.addEventListener("load", function() { | |||
document.getElementById("generate").addEventListener("click", function() { | |||
// Werte aus dem Formular einlesen | |||
var totalLength = parseInt(document.getElementById("length").value, 10); | |||
var vowels = document.getElementById("vowels").value; | |||
var consonants = document.getElementById("consonants").value; | |||
var digitsAllowed = document.getElementById("digits").value; | |||
var numDigits = parseInt(document.getElementById("numDigits").value, 10); | |||
var specials = document.getElementById("specials").value; | |||
var passwordCount = parseInt(document.getElementById("count").value, 10); | |||
var output = ""; | |||
// Hilfsfunktion: Zufälliges Zeichen aus einem String auswählen | |||
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) { | |||
if(length <= 0) return ""; | |||
var sequence = ""; | |||
// Zufällig entscheiden, ob mit Vokal oder Konsonant gestartet wird | |||
var useVowel = Math.random() < 0.5; | |||
for(var i = 0; i < length; i++){ | |||
sequence += useVowel ? randomChar(vowels) : randomChar(consonants); | |||
useVowel = !useVowel; | |||
} | |||
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 | |||
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"; | |||
} | |||
// Ausgabe in das Textfeld schreiben | |||
document.getElementById("output").value = output; | |||
}); | |||
}); | |||
</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</li> | |||
<li>Von dieser Restlänge wird 1 abgezogen für das Sonderzeichen. Bei 16 Zeichen - 4 Zahlen - 1 Sonderzeichen bleibt also 11.</li> | |||
</div> | <li>Diese Restlänge wird durch 2 geteilt. Ggf. wird dabei aufgerundet. Das ergibt die Länge des ersten Wortes, z.B. 6</li> | ||
<div class="Passwortgenerator-rechts" style="float: right; width: 47%;"> | <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> | ||
Der Passwortgenerator funktioniert nach folgenden Regeln:<br> | <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</li> | |||
</ | <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> | ||
</p> | <li>Danach wird die Zahl angehängt</li> | ||
</body> | </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 "Internet-Passwörter 3 (14 Zeichen)"<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> |
Aktuelle Version vom 23. Februar 2025, 22:59 Uhr
Der Passwortgenerator funktioniert nach folgenden Regeln:
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.
- 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
- Von dieser Restlänge wird 1 abgezogen für das Sonderzeichen. Bei 16 Zeichen - 4 Zahlen - 1 Sonderzeichen bleibt also 11.
- Diese Restlänge wird durch 2 geteilt. Ggf. wird dabei aufgerundet. Das ergibt die Länge des ersten Wortes, z.B. 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
- 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ß
- Danach wird 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.