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
|