PHP ŞİFRELEME
Merhaba arkadaşlar 2019-05-03 02:22, ben bilgisayar başındayım. Bu gün erken uyuyacağım dedim ama yine olmadı. Başlayacağım bir proje için php çift yönlü şifreleme sınıfı lazım oldu. Yazdım, daha basit anlaşılması içinde sadeleştirdim. Şifreleme anahtarlarının nasıl girileceğini belirttim. Session ve cookie de aynız zamanda veri tabanı kayıtlarında kullanabilirsiniz. Herhangi bir veritabanı sızmarlında karşı tarafa hiç bir anlam ifade etmeyen veriler gidecektir. Key ve mcrypt kodu ele geçmediği sürece çözülmez. Faydalı olması dileğiyle, başarılar.
classMcrypt.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | class veriSifrele{ private $SifreKey='$2a$07$usesomesillystringforsalt$'; //Bu anahtarda istediğniz karakteri kullanabilirsiniz. private $SifreVeri,$IvSize,$Iv,$Crypt;//Şifreleme öncesi lazım olacak değişkenleri serisi. private $SifreKey_2="1234567890123456";//Buda ikinci şifreleme için oluşturulan key. Bu keyin sadece numerik rakamlardan oluşması gerekiyor. /*Sifreleme 1*/ public function SifreEnCode($Veri){ $this->SifreVeri=$Veri; //gelen veriyi aldık ve sınıf içindeki değişkene aktardık. $this->IvSize=mcrypt_get_iv_size(MCRYPT_BLOWFISH,MCRYPT_MODE_ECB); //İçerisinde belirtilen şifre ve kipe ait ıv uzunluğunu dönderiyor. $this->Iv=mcrypt_create_iv($this->IvSize,MCRYPT_RAND); //rasgele iv oluşturuyor. $this->Crypt=mcrypt_encrypt(MCRYPT_BLOWFISH,$this->SifreKey,$this->SifreVeri,MCRYPT_MODE_ECB,$this->Iv);//şifireleniyor return $this->Crypt; } public function SifreDecode($Veri){ $this->SifreVeri=$Veri; $this->IvSize=mcrypt_get_iv_size(MCRYPT_BLOWFISH,MCRYPT_MODE_ECB); $this->Iv=mcrypt_create_iv($this->IvSize,MCRYPT_RAND); $this->Crypt=mcrypt_decrypt(MCRYPT_BLOWFISH,$this->SifreKey,$this->SifreVeri,MCRYPT_MODE_ECB,$this->Iv); return $this->Crypt; } /*Sifreleme 2*/ public function SifreEnCode_2($Veri){ $this->SifreVeri=$Veri; $this->IvSize=mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256,MCRYPT_MODE_ECB); $this->Iv=mcrypt_create_iv($this->IvSize,MCRYPT_RAND); $this->Crypt=mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$this->SifreKey_2,$this->SifreVeri,MCRYPT_MODE_ECB,$this->Iv); return $this->Crypt; } public function SifreDecode_2($Veri){ $this->SifreVeri=$Veri; $this->IvSize=mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256,MCRYPT_MODE_ECB); $this->Iv=mcrypt_create_iv($this->IvSize,MCRYPT_RAND); $this->Crypt=mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$this->SifreKey_2,$this->SifreVeri,MCRYPT_MODE_ECB,$this->Iv); return $this->Crypt; } } |
index.php:
1 2 3 4 5 6 7 8 9 10 11 12 | require_once("classMcrypt.php"); $sifreSinif=new veriSifrele(); $sifreli=$sifreSinif->SifreEnCode("Çağlar hoca ile php dersleri"); echo $sifreli; echo "<br />"; echo $sifreSinif->SifreDecode($sifreli); echo "<br />"; $sifreli=$sifreSinif->SifreEnCode_2("Akşam Yine Toplandı Derinde/Canan Gülüyor eskiyerinde."); echo $sifreli; echo "<br />"; echo $sifreSinif->SifreDecode_2($sifreli); |