MultiServis.Net //PHP El Kitabı

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>

Sifreleme Algoritmalari ve Veri Guvenligi Yazar: Serkan Tarih: 01/03/02

Problem:Verilerimizi bir anahtarla sifrelemek istiyoruz.Ama nasil?

Cozum:Kendi sifre/desifre algoritmanizi yazin.

Sifrelemek icin:

<?php
function veriyi_sifrele ($veri,$anahtar) {

for ($i=0,$j=0;$i<strlen ($veri); $i++,$j++){
$orta = ord(substr($veri,$i,1)) + ord(substr($anahtar,$j,1));
if ($j > strlen($anahtar)) {$j=0;}
$sifrelenmis_veri .= chr ($orta);
}
return ($sifrelenmis_veri);

}

$sonuc= veriyi_sifrele ($veri,$anahtar);
echo $sonuc;

?>

Desifrelemek icin:

<?php
function veriyi_desifrele ($veri,$anahtar) {

for ($i=0,$j=0;$i<strlen ($veri); $i++,$j++){
$orta = ord(substr($veri,$i,1)) - ord(substr($anahtar,$j,1));
if ($j > strlen($anahtar)) {$j=0;}
$desifrelenmis_veri .= chr ($orta);
}
return ($desifrelenmis_veri);
}

$sonuc= veriyi_desifrele ($veri,$anahtar);
echo $sonuc;

?>

Yukaridaki algoritmalar neredeyse guvenilemeyecek kadar basit yapili sifreleme yapilaridir.Daha iyi bir cozum ariyorsaniz PHP ile beraber gelen TripleDES sifreleme yapilarini kullanabilirsiniz.Kisa bir ornek vermek istersek,

<?php
$anahtar = "Serkan Hadi Ceylani";
$veri = "Kendi zamaninda yapilan politika sonsuzlugu yakalar";

$sifrelenmis_veri = mcrypt_ecb(MCRYPT_TripleDES,$anahtar,$veri,MCRYPT_ENCRYPT);
$desifrelenmis_veri = mcrypt_ecb(MCRYPT_TripleDES,$anahtar,$veri,MCRYPT_DECRYPT);
?>

MD5 Sifreleme Algoritmasi

Web sayfalarinda kullanilan "oturum yonetimi" gibi uygulamalar icin yaratilabilcek en guzel Kullanici ID asagidaki gibidir :

- (getmypid () fonksiyonu kullanilarak farkli server proseslerinin veya intranet uzerinde ayni agda yer alan serverlar icin farkli kisiler icin ayni ID uretilmesi problemi ortadan kalkmaktadir :)
- Kullanilan butun fonksiyonlar PHP ile beraber gelmektedir.

  <?php
  $id = md5(uniqid(microtime(), 1)) . getmypid ();
  ?>

  Ornek Uygulama

  Simdi de kendi yazdigimiz ornek ile ilgili bir alistirma yapalim ve sifreledigimiz verilerin neler olduguna nasil sifrelendigine bakalim.

  Once veriyi alacagimiz HTML formunu hazirlayalim.

  1.Asagidaki kodlari text editorunuz yazrdimiyla yaziniz.

  <HTML>
  <HEAD>
  <TITLE>Sifreleme ve Desifreleme Algoritmalari</TITLE>
  </HEAD>
  <BODY>
  <FORM ACTION="sifrele.php" METHOD=GET>
  Lutfen sifrelemek istediginiz veriyi asagidaki kutuya giriniz.
  <BR>
  <INPUT TYPE=TEXT NAME="veri">
  Lutfen bu veri icin bir sifreleme anahtari giriniz.
  <BR>
  <INPUT TYPE=TEXT NAME="anahtar">
  <INPUT TYPE=SUBMIT VALUE=Sifrele>
  </FORM>
  </BODY>
  </HTML>

  2. Bu dosyayi "sifrele.html" olarak kayit edin.

  Simdi de sifrelenmesi icin bu verinin gelecegi "sifre.php" dosyasini yazalim.Tabii ki yukaridaki algoritmayi programa donusturmekten baska bir olay degil yaptigimiz.

  3.Asagidaki PHP kodlarini text editorunuz yardimiyla yaziniz.

  <?php
  //sifrele.php

  function veriyi_sifrele ($veri,$anahtar) {

  for ($i=0,$j=0;$i<strlen ($veri); $i++,$j++){
  $orta = ord(substr($veri,$i,1)) + ord(substr($anahtar,$j,1));
  if ($j > strlen($anahtar)) {$j=0;}
  $sifrelenmis_veri .= chr ($orta);
  }
  return ($sifrelenmis_veri);
  }

  $sonuc= veriyi_sifrele ($veri,$anahtar);
  echo $sonuc;

  ?>

  4.Bu dosyayi "sifrele.php" olarak kayit ediniz.

  5. sifrele.html dosyasini acip kendi yazdiginiz algoritma ile verilerinizi sifreleyin.

  Ornek Dosyalar

  http://www.turk-php.com/ornekler/sifrele.html

  http://www.turk-php.com/ornekler/sifrele.php

  http://www.turk-php.com/ornekler/sifrele.phps

  Sayin Tayfun ULU tarafindan program biraz gelistirilmis ve uygulama sekline sokulmus...

  Tessekkurler...

  http://www.turk-php.com/ornekler/sifrever2.php

  http://www.turk-php.com/ornekler/kodgoster.php?Yol=/sifrever2.php

  Her turlu gorus dusunce ve gelistirme onerisi icin serkan@turk-php.com adresinden benimle temasa geciniz.

  Serkan Hadi Ceylani
  serkan@turk-php.com

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>