Warning: The magic method Math_Captcha::__wakeup() must have public visibility in /home/hucremco/public_html/blog/wp-content/plugins/wp-math-captcha/wp-math-captcha.php on line 87
Random arşivleri - HucRem Blog

Toplamı Belirli Rastgele Ondalıklı Sayılar Üretmek

<?php
class rastgeleOndalikliSayiOlustur{
	public $sayiolustur = array();
	function __construct($toplam, $kac){
		$i = 0;
		while ($i != $kac) {
			if ($i == $kac - 1) { $this->sayiolustur[count($this->sayiolustur)] = $toplam; } else {
				$this->sayiolustur[count($this->sayiolustur)] = round(lcg_value() * intval($toplam / rand(1, rand(2, $kac - $i))), 2);
				$toplam -= $this->sayiolustur[count($this->sayiolustur) - 1];
			}
			$i++;
		}
	}
}
$r = new rastgeleOndalikliSayiOlustur(125, 6);
print_r($r->sayiolustur);
?>

Çıktısı

Array
(
    [0] => 26.29
    [1] => 11.57
    [2] => 41.69
    [3] => 12.95
    [4] => 14.69
    [5] => 17.81
)

Ö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

 

Rastgele Şifre Oluşturma,Tuzlu Şifreleme ve Doğrulama

<?php
class Sifre {
	var $tuz;
  function sifrele($sifre, $tuz = '') {
		$this->tuz=$tuz;
    $buyu = '$1$';
    $karakterler = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    if (strlen($this->tuz) < 8) {
      mt_srand ((double) microtime() * 1000000);
      for ($i = 8; $i > strlen($this->tuz);) {
        $this->tuz .= $karakterler{mt_rand (0, strlen($karakterler)-1)};
      }
    }
    $passwd = crypt($sifre, $buyu . $this->tuz);
    return($passwd);
  }
  function kontrol($sifre, $sifreli) {
    $test = $this->sifrele($sifre, substr($sifreli, 3, 8));
    if ($test == $sifreli) {
      return(true);
    }else{
      return(false);
    }
  }
  function rastgeleSifreUret() {
    $karakterler = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    $this->tuz=mt_srand ((double) microtime() * 1000000);
    for ($i = 8; $i > strlen($this->tuz);) {
      $this->tuz .= $karakterler{mt_rand (0, strlen($karakterler)-1)};
    }
    return($this->tuz);
  }
}
$p = new Sifre;
echo $rastgele= $p->rastgeleSifreUret();
echo "<br>";
echo $sifreli = $p->sifrele($rastgele,$tuz=rand(1,2));
echo "<br>";
if ($p->kontrol($rastgele,$sifreli)) {
echo "Doğru Şifre";
}else{
echo "Hatalı Şifre";
}
?>

Çıktısı

h95Pjaec
$1$1xuDtzzC$VcOdiz8wCJRBZgdHhYjWt1
Doğru Şifre

 

Not Defterinden Rastgele Kelime Çekmek

<?php
class rastgeleKelime {
    var $dosya;
    function rastgeleKelime($dosya)
    {
        $this->dosya = $dosya;
    } 
    function kelimeGoster()
    {
        $oku = file($this->dosya);
        $o = shuffle($oku);
        echo $oku[$o];
    } 
} 
$r = new rastgeleKelime("kelimeler.txt");
$r->kelimeGoster();
?>

kelimeler.txt

Kalem
Sıra
Masa
Dolap
Pencere
Silgi

Çıktısı

Dolap