Özelleştirilmiş Şifre Üretici

PHP
45 lines
<?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>";
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
2 lines
f_aDfXWCmKK4t
!bb!1ab1
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

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

PHP
44 lines
<?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";
}
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
3 lines
h95Pjaec
$1$1xuDtzzC$VcOdiz8wCJRBZgdHhYjWt1
Doğru Şifre
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

İstenilen Karakter ve Uzunluğa Göre Anahtar Şifreleme

PHP
15 lines
<?php
class anahtar{
var $anahtar = "";
var $karakterler = array("1","2","3","8","5","6","7","8","9",
"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",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z");
function anahtar($boyut){
for ($i = 0; $i<$boyut; $i++){
$this->anahtar .= $this->karakterler[rand(0,count($this->karakterler)-1)];
}
}
}
$sifre = new anahtar(7);
echo $sifre->anahtar;
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
1 lines
XIhHxmc
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Büyük, Küçük Harf ve Rakam Seçmeli Rastgele Şifre Oluşturma Sınıfı

PHP
28 lines
<?php
class sifre_olustur{
function sifre_olustur($uzunluk = 8, $tip = FALSE, $buyukharf = FALSE){
$sifre = md5(uniqid());
if($tip == "harf") {
$sifre = preg_replace("/[0-9]/", "", $sifre);
$yeni_sifre=null;
if($buyukharf) {
for ($i = 0; $i < strlen($sifre); $i++) {
if($i%3 == 0) $sifre[$i] = strtoupper($sifre[$i]);
$yeni_sifre.=$sifre[$i];
}
$sifre = $yeni_sifre;
}
} elseif($tip == "sayi") {
$sifre = preg_replace("/[a-z]/", "", $sifre);
}
$sifre = substr($sifre, 0, $uzunluk);
return $sifre;
}
}
$g= new sifre_olustur;
echo $g->sifre_olustur(16)."<br>";
echo $g->sifre_olustur(8,"sayi")."<br>";
echo $g->sifre_olustur(12,"harf")."<br>";
echo $g->sifre_olustur(12,"harf",true)."<br>";
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
4 lines
86286a5f013eead7
86286501
afeeadabcfca
AfeEadAbcFca
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX