Pass­wör­ter

Zu­gangs­da­ten, Be­nut­zer­na­me, Pass­wör­ter, PIN, Zer­ti­fi­ka­te, … oh­ne et­was Ge­hei­mes läuft nichts.

Ich nut­ze ger­ne ein klei­nes PHP-Skript, um neue Pass­wör­ter zu ge­ne­rie­ren. Hier zwei zu­fäl­li­ge Vor­schlä­ge für ei­ne ein­fa­che Voice­mail-PIN und ein si­che­res Pass­wort:

PIN

Pass­wort

Wenn dir die PIN oder das Pass­wort nicht ge­fällt, dann kli­cke ein­fach auf Up­date. Mit Co­py kannst du die PIN oder das Pass­wort in dei­ne Zwi­schen­ab­la­ge ko­pie­ren.

Ei­ne 6‑stellige PIN kann in we­ni­gen Se­kun­den er­ra­ten wer­den und soll­te nie im In­ter­net ver­wen­det wer­den. Ein zu­fäl­li­ges 10-stel­li­ges Pass­wort aus vier Zei­chen­grup­pen kann auch mit er­heb­li­chen Auf­wand nicht zeit­nah er­ra­ten wer­den und ist si­cher.

https://​check​dein​pass​wort​.de/

Nach der An­we­nung spei­che­re al­le Pass­wör­ter in Kee­pass

PHP-Skript

Das fol­gen­de PHP-Skript er­zeugt ein zu­fäl­li­ges Pass­wort in an­ge­ge­be­ner Län­ge und mit der an­ge­ge­be­nen Zei­chen­aus­wahl. Es wird si­cher­ge­stellt, dass min­des­tens ein Zei­chen den an­ge­ge­be­nen Zei­chen­grup­pen (low, upp, num oder sym) ent­hal­te­nen ist.

<?php
function randomPassword($length, $charset) {
  // Peter Wellmann, 2023-05-19
  // $length  - password length
  // $charset - character types
  // define variables
  $pool      = array();
  $password1 = '';
  $password2 = '';
  $passlen   = 0;
  // character pool    
  $pool["low"] = 'abcdefghijklmnopqrstuvwxyz';
  $pool["upp"] = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  $pool["num"] = '1234567890';
  $pool["sym"] = '_-+#.,!';
  // check password length
  if ($length < 4) {

    $length = 4;
  } 
  // get characters types
  $charset = explode(",",$charset);
  // 1st loop to ensure usage of all char types
  foreach ($charset as $key=>$value) {
    if (array_key_exists($value, $pool)) {
      $password1 .= substr(str_shuffle($pool[$value]),0,1);
      $passlen += 1;
    } else return "wrong charset";
  }
  // randomize
  $password1 = str_shuffle($password1);
  // 2nd loop to ensure password length
  foreach ($charset as $key=>$value) {
    if (array_key_exists($value, $pool)) {
      $password2 .= str_shuffle($pool[$value]);
    }
  }
  // randomize and trim length
  $password2 = substr(str_shuffle($password2),0,$length-$passlen);
  // randomize both passwords and return
  return str_shuffle($password1.$password2);
}
?>

Schreibe einen Kommentar