Skript na generování náhodných hesel

Vydáno: 30.06.06 Kategorie:

Protože jsem se nedávno ponořil do tajů světa PHP, co bych to byl u Tutatise za Ivoriuse, kdybych se o výsledky mého bádání nepodělil. Tedy, dnes přináším skript na generování náhodného hesla, který využívá funkcí, rand a cyklu while. V komentářích jsem se snažil maličko skript popsat, aby i začínající měli přehled :)

Aktualizace generátoru hesel od Drobka

Drobek se zlobil, že používám neefektivní a zastaralý kód, nabízím tedy jeho novou verzi

function Random_Password($delka_hesla) {
  $mozne_znaky = 'abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  $vystup = '';
  $pocet_moznych_znaku = strlen($mozne_znaky);
  for ($i=0;$i<$delka_hesla;$i++) {
    $vystup .= $mozne_znaky[mt_rand(0,$pocet_moznych_znaku)];
  }
  return $vystup;
 }

Stará verze generátoru hesel

<?php //generování náhodných hesel
function Random_Password($length){
  srand((double)microtime()*1000000);  // inicializuje generátor náhodných čísel
  $possible_charactors = "abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; /* definujeme
  možné znaky pro heslo */
  $string="";
  while(strlen($string)<$length) { // opakuj cyklus dokud počet znaků string je menší než length
    $string .= substr($possible_charactors, rand()%(strlen($possible_charactors)),1);
  // vybereme náhodný znak z množiny znaků pro heslo
    }
  return ($string);
}
echo Random_Password(8); // zavoláme naší funkci s parametrem 8 - heslo o 8 znacích
/*
Co možná nevíte?
- strlen  > slouží ke zjištění délky řetězce
- substr  > slouží k výběru podřetězce, kde jako parametry zadáváme krom vstupního řetězce
 také počáteční a koncovou pozici pro výběr podřetězce. Číslování je od O
 */
?>