Startseite Skripte für das Wintersemester 2018/19 Interaction Design P5, Teil 2 Passwort generieren


Passwort generieren

Der Sketch generiert bei jedem Mouseklick ein neues, 8stelliges Passwort und verwendet dazu random(), um zufällig aus den Buchstaben auszuwählen, die bei „seed“ angegeben sind.

P5

// aus diesen Buchstaben wird das Passwort zufällig generiert
var seed = "ABCEDFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_[]%&";
var Lae; // Länge von seed, wird automatisch beim Starten des Programms abgefragt

var b, alt_b; // der zufällig ausgewählte Buchstabe
var output = "Klick mich!"; // Ausgabe des Passwortes

var p = 8; // Länge des Passworts, kann man hier anpassen

function setup() {
  createCanvas(960, 240);

  Lae = seed.length; // Länge von seed, wird automatisch beim Starten des Programms abgefragt
}

function draw(){
  background(255);

  // der Info-Text am oberen Rand
  fill(0);
  textSize(18);
  textFont("Georgia");
  text("Verwendete Buchstaben:", 15, 30);
  fill(0, 0, 255);
  // Ausgabe der Buchstaben, die bei seed angegeben sind
  text(seed, 220, 30);
  fill(0);
  text("neues " + p + "-stelliges Passwort bei jedem MouseClick: ", 15, 55);

  // das Passwort, groß und rot, wird jedesmal generiert, wenn man mit der Mouse klickt
  textSize(160);
  fill(255, 0, 0);

  text(output, 15, height-37);
}

function mousePressed(){
  output = "";

  // die Schleife läuft so oft durch, wie man bei p angegeben hat
  // und erzeugt jedesmal zufällig eine neuen Buchstaben
  for (i = 0; i < p; i++) {
    b = seed.charAt(int(random(0, Lae)));

    // hiermit wird der neu erzeugte Buchstabe in der Variable "output" hinzugefügt
    // wenn nicht der alte Wert von b ("alt_b") identisch mit dem aktuellen ist
    // damit wird verhindert, dass der gleiche Buchstabe mehrmals hintereinander auftaucht
    if (alt_b != b) {
      output += b;
    }

    alt_b = b;
  }
}