Büyük ve Küçük Harf, Sayı ve Özel Karakter Seçerek Rastgele Şifre Oluşturma

<?php
header('Content-Type: text/html; karakterleret=utf-8');
class sifre {
	var $kucukharf;
	var $buyukharf;
	var $sayi;
	var $ozelkarakter;
	Var $uzunluk;
	Var $onek;
	function sifre($uzunluk=10,$onek='') {
		$this->uzunluk = $uzunluk;
		$this->onek = $onek;
		$this->kucukharf = true;
		$this->buyukharf = true;
		$this->sayi = true;
		$this->ozelkarakter = false;	
	}
	function olustur() {
		if ($this->buyukharf) {
			$karakterler = array("A","B","C","D","E","F","G","H","I","J","K",
	                       "L","M","N","O","P","Q",
			       "R","S","T","U","V","W",
			       "X","Y","Z");
		}
		if ($this->kucukharf) {
			$karakterler[] = "a";
			$karakterler[] = "b";
			$karakterler[] = "c";
			$karakterler[] = "d";
			$karakterler[] = "e";
			$karakterler[] = "f";
			$karakterler[] = "g";
			$karakterler[] = "h";
			$karakterler[] = "i";
			$karakterler[] = "j";
			$karakterler[] = "k";
			$karakterler[] = "l";
			$karakterler[] = "m";
			$karakterler[] = "n";
			$karakterler[] = "o";
			$karakterler[] = "p";
			$karakterler[] = "q";
			$karakterler[] = "r";
			$karakterler[] = "s";
			$karakterler[] = "t";
			$karakterler[] = "u";
			$karakterler[] = "v";
			$karakterler[] = "w";
			$karakterler[] = "x";
			$karakterler[] = "y";
			$karakterler[] = "z";
		}
		if ($this->sayi) {
			$karakterler[] = "1";
			$karakterler[] = "2";
			$karakterler[] = "3";
			$karakterler[] = "4";
			$karakterler[] = "5";
			$karakterler[] = "6";
			$karakterler[] = "7";
			$karakterler[] = "8";
			$karakterler[] = "9";
			$karakterler[] = "0";
		}
		if ($this->ozelkarakter) {
			$karakterler[] = '!';
			$karakterler[] = '@';
			$karakterler[] = '#';
			$karakterler[] = "$";
			$karakterler[] = '%';
			$karakterler[] = '^';
			$karakterler[] = '&';
			$karakterler[] = '*';
			$karakterler[] = '(';
			$karakterler[] = ')';
			$karakterler[] = '{';
			$karakterler[] = '}';
			$karakterler[] = '[';
			$karakterler[] = ']';
			$karakterler[] = '<';
			$karakterler[] = '>';
			$karakterler[] = '?';
			$karakterler[] = "=";
			$karakterler[] = '+';
			$karakterler[] = '-';
			$karakterler[] = "_";
			$karakterler[] = "/";
		}

		$max_eleman = count($karakterler) - 1;
		$yenisifre = $this->onek;
		$l = $this->uzunluk - struzunluk($this->onek);
		for ($i = 0;$i<$l;$i++)
		{ 
 			srand((double)microtime()*1000000);
			$yenisifre .= $karakterler[rand(0,$max_eleman)];
		}
		return  $yenisifre;
	}
}
$s = new sifre();
echo $s->olustur() . '<br>';
$s->kucukharf = false;
echo $s->olustur() . '<br>';
$s->ozelkarakter = true;
echo $s->olustur() . '<br>';
?>

Çıktısı

5D123P5RSF
$+_/@#%&VX
ZYCqsVXBDF

 

Özelleştirilmiş Şifre Üretici

<?php
class SifreUretici{
	var $wc;
	var $w;
	var $l;
	var $minl;
	var $maxl;
	function SifreUretici($min, $max, $dizi=NULL){
		if($dizi == NULL){
			$this->wc = array('_','-'); // special chars
			for($i=48; $i<58; $i++){
				array_push($this->wc, chr($i)); // 0-9
			}
			for($i=65; $i<91; $i++){
				array_push($this->wc, chr($i)); // A-Z
      }    
			for($i=97; $i<122; $i++){
				array_push($this->wc, chr($i)); // a-z
      }    
			shuffle($this->wc);
		}
		else{ 
			$this->wc = $dizi; 
		}
		$this->minl = $min;
		$this->maxl = $max;
	}
	function olustur(){
		$this->w = NULL; 
		$this->l = rand($this->minl, $this->maxl); 
		for($i=0; $i<$this->l; $i++){
			$no = rand(0, count($this->wc)-1);
			$this->w .= $this->wc[$no];
		}
		return htmlentities($this->w);
	}
}
$s = new SifreUretici(10, 16); //10-16 karakter arası şifre üretir.
echo $s->olustur();
echo "<br>";
$dizi = array('a','b','1','!'); // Sadece bu karakterlerden 8 haneli şifre üretir
$s = new SifreUretici(8,8,$dizi);
echo $s->olustur();
echo "<br>";
?>

Çıktısı

f_aDfXWCmKK4t
!bb!1ab1

 

Zamana ve Eklere Göre Rastgele Şifre Üretme Sınıfı

<?php
class sifreUret{
  var $gecici;
  function sifreUret($uzunluk=6, $ek="kelime"){
    $sifre=$ek.date("s:H:m:i:s");
    $this->gecici=substr(md5($sifre), 2, $uzunluk);
  }
  function get_sifre(){
    return $this->gecici;
  }
}

$p=new sifreUret();
$p->sifreUret(8);           
print $p->get_sifre();
echo "<br>";
$p->sifreUret(8, "benimkelimem");           
print $p->get_sifre();
?>

Çıktısı

7fe03153
c65ebee1