<?php
function salasanaattori($pituus, $spesiaaleja) { //Funktio luo $pituus pitkän salasanan, $spesiaaleja (arvo 1 = käytetään erikoismerkkejä) määrittää käytetäänkö salasanassa erikoismerkkejä.
$az = range('a', 'z'); //Luodaan taulukko a:sta z:taan.
$azi = range('A', 'Z'); //Toinen samanlainen taulukko, mutta isoilla kirjaimilla.
$num = range(0, 9); //Kolmas taulukko, jossa numerot 0:sta yhdeksään.
if($spesiaaleja == 1) { //Jos käytetään erikoismerkkejä luodaan vielä neljäs taulukko, jossa on erikoismerkit.
$spesiaali = array("!", "#", "%", "&", "/", "(", ")", "=", "-", "_", "*", "^", ".", "$", "@", "+", "$", "£", ".", ",", "?");
} else {
$spesiaali = array();
}
$merkit = array_merge($az, $azi, $num, $spesiaali); //Yhdistetään taulukot yhdeksi taulukoksi, josta löytyy kaikki tarvittavat merkit salasanan luontiin.
$lm = count($merkit) - 1; //Lasketaan merkkien määrä taulukossa count-funktiolla ja vähennetään yksi, koska taulukko alkaa arvolla nolla.
$salasana = ""; //Luodaan tyhjä muuttuja salasanalle.
for($i = 0; $i < $pituus; $i++) { //Silmukka jossa lisätään merkit yksitellen muuttujaan.
$satunnainen = random_int(0, $lm); //Valitaan arvotulla numerolla merkki taulukosta.
$salasana .= $merkit[$satunnainen]; //Lisätään merkki salasanaan.
}
return $salasana; //Palautetaan valmis salasana.
}
?>