Tek İleti Göster
Eski 09.06.2007   #1 (permalink)
staticiation
 
Katılma Tarihi: Şub 2006
Nereden: Bursa/es-es
Yaş: 23
Mesajlar: 1,780
Varsayılan Şifreleme Algoritmaları ve Veri Güvenliği...

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.
staticiation Şuanda Forumda Değil   Alıntı yaparak cevapla