Php Şifreleme Fonksiyonları Nelerdir?

php-sifreleme-fonksiyonlari-banner

Php Şifreleme Nedir?

Php şifreleme fonksiyonları verileri şifrelememiz için kullanılır. Şifreleme fonksiyonları kendisine gönderilen verileri belirli algoritmalara göre yeniden yapılandırarak bir dizge döndürürler. Bazı durumlarda verileri şifrelemek gerekebilir. Php şifreleme fonksiyonları bize bu konuda yardımcı olur. Örneğin üyelerimizi tuttuğumuz veri tabanında üye şifrelerini olduğu gibi kayıt etmemiz hiç güvenli olmaz. Olası bir açıkta üye şifreleri direkt olarak meydana çıkar. Bu gibi durumları engellemek için şifreleme fonksiyonları kullanılır. 

Başka bir örnek vermek gerekirse yaptığınız php uygulamalarımıza şifreleme yöntemleri ile bir lisans kontrol sistemi yapabilirsiniz ancak bu pek güvenli olmayabilir. Bu şekilde bir lisans sisteminin aşılması basit olacaktır. 

Şifreleme fonksiyonları %100 güvenlik demek değildir. Şifreleme fonksiyonlarının çözülmeleri mümkün olabilir.

Php Fonksiyonlar aracılığıyla da bir takım güvenlik önlemleri almak mümkündür. Fonksiyonlar konusunu incelemenizi tavsiye ederim.

md5() Şifreleme Fonksiyonu

Genellikler md5() şifreleme fonksiyonu kullanılır. Örneklerde en çok bu fonksiyon vardır.  Md5 şifreleme algoritması 32 karakterlik 16 baytlık bir dizge döndürür. Md5 ile şifrelenen veri tekrar geri döndürülemez. Şifreleme algoritması oldukça iyi olsa bile basit şifreler kullanımı kolayca çözülebilir. İnternette md5 ile şifrelenmiş verileri kırmak için kullanılan birçok çevrimiçi çözümleme siteleri mevcuttur.

Basit şifre çözme işlemlerini test etmek için burayı kullanabilirsiniz.

Örnek kullanım:

Örnekte iki adet değişkendeki veriler md5 ile şifrelenmiştir.

<?php 
$ifade = "123456";
$ifade2 = "eposta@mustafaazak.com";
echo md5($ifade) ."<br />";
echo md5($ifade2);
?>

Ekran görüntüsü aşağıdaki gibi olacaktır.

e10adc3949ba59abbe56e057f20f883e
2ef722dba9810eb3006bbfe6e75ff8d0

Yukarıda çok basit bir örnek ile md5 şifrelemeyi gösterdik. Md5 şifrelemeyi üye şifrelerinde nasıl kullanacağımız hakkında basit bir giriş örneğini inceleyelim. 

Örnek kullanım:

Üyelerimizin şifresini md5 ile şifreleyerek kaydedersek, üye girişinde formdan gelen veriyi md5 ile şifreleyerek karşılaştırmamız gerekir.

<?php 
$vt_sifre = "c33367701511b4f6020ec61ded352059"; // 654321' ifadesinin md5 ile şifrelenmiş şeklidir.
$sifre = "654321";
if($vt_sifre == md5($sifre)){
echo "Şifre doğru";
}else{
echo "Şifre hatalı";
}
?>

sha1 Şifreleme Fonksiyonu

Sha1 şifreleme fonksiyonu tıpkı md5 gibi geri döndürülemeyecek şekilde şifrele yapar. Sha1 algoritması 40 karakterlik 16baytlık bir dizge döndürür. 

Örnek kullanım:

<?php 
$vt_sifre = "dd5fef9c1c1da1394d6d34b248c51be2ad740840"; // 654321' ifadesinin sha1 ile şifrelenmiş şeklidir.
$sifre = "654321";
if($vt_sifre == sha1($sifre)){
echo "Şifre doğru";
}else{
echo "Şifre hatalı";
}
?>

Tıpkı md5 şifrelemedeki gibi kullanımı oldukça basittir.

crc32 Şifreleme Fonksiyonu

Kullanımı diğer şifreleme yöntemleri ile aynıdır. Şifrelenen veriler geri döndürülemez. Diğer yöntemlerdeki gibi karşılaştırma yapmak için iki verinin de aynı türde şifrelenip karşılaştırılması gerekmektedir.  Şifreleme sonucu dizgenin durumuna göre negatif ya da pozitif tamsayı değeri döndürülür.

Örnek kullanım:

<?php 
$vt_sifre = "4025094801"; // 654321' ifadesinin crc32 ile şifrelenmiş şeklidir.
$sifre = "654321";
if($vt_sifre == crc32($sifre)){
echo "Şifre doğru";
}else{
echo "Şifre hatalı";
}
echo crc32($sifre);
?>

base64 Şifreleme Fonksiyonu

Base64 php şifreleme fonksiyonu diğerlerinin aksine daha basit şifreleme sağlar ve base64 ile şifrelenen verilerin çözülmesi mümkündür. Base64 şifreleme için base64_encode() ile şifrelenen veriler base64_decode() fonksiyonu ile çözümlenebilir.

Örnek kullanım:

<?php 
$sifre = "NjU0MzIx"; // "654321" verisinin base64_encode ile şifrelenmiş şekli.
echo  "Şifreli :".base64_encode("654321");
echo "Çözülmüş :".base64_decode($sifre);
?>

Tüm bu şifreleme fonksiyonları tek başına yeterli değildir. Her ne kadar algoritmaları güvenli olsa da kırılabilmeleri mümkündür. Bu algoritmaların kırılmalarının önüne geçmek için birden fazla yöntemi iç içe kullanarak daha karmaşık bir yapı oluşturabiliriz. 

Örnek kullanım:

<?php 
$sifre = "654321";
$sifre_md =  md5($sifre);
$sifre_sha = sha1($sifre_md);
$sifre_crc = crc32($sifre_sha);

if(crc32(sha1(md5($sifre))) == $sifre_crc){
  echo "Şifre doğru";
}else{
  echo "Şifre yanlış";
}
?>

Yukarıdaki örnekte 3 çeşit şifreleme yöntemini kullanarak. Tekli kullanıma göre daha güvenli bir şifre ürettik. Burada dikkat edilmesi gereken şifreleme yöntemlerinin sırasını karıştırmamanız. Şifreleme yöntemlerinin hepsi çok farklı değerler ürettiği için sırayı kontrol ederek oluşturun. Unutmayın ki fonksiyonlar içten dışa doğru çalışmaktadır.

Php Şifreleme – Ion Cube Loader Nedir?

php-sifreleme-ion-cube-kurulumu-logo

Şifreleme konusu açılmışken Ion Cube Loaderdan bahsetmeden olmaz diye düşündüm. Ion Cube Loader ücretli bir şifreleme programıdır. Php uygulamalarımızın dosyalarını Ion Cube ile şifreledikten sonra bu dosyaları çalıştırmanın tek yolu sunucuda Ion Cube kütüphanesinin kurulu olmasıdır. İon Cube ile şifrelenen dosyalar yine Ion Cube aracılığı ile çözülerek şifrelenmemiş gibi çalıştırılır.

Php uygulamalarımıza lisans sistemi yaptığımızda Ion Cube ile güvenliği sağlamak mümkündür. Ion Cube ile şifrelediğimiz dosyalarda başkaları değişiklik yapamaz. Böylece lisans güvenliği sağlanmış olur. Şifreleme işlemi ücretlidir ancak şifreyi çözme için ücretli bir sürüme ihtiyacımız yoktur.

Ion Cube şifre kırma başlığı altında internette binlerce program var ancak işe yarayıp yaramadıklarını denemedim genelde virüs içeren dosyalar olduğu için bu tarz yollara başvurmanız ciddi sorunlara yol açabilir.

Php Şifreleme – Ion Cube Loader Kurulumu 

Ion Cube Loader kurulumu oldukça basittir. İlk yapmamız gereken İon Cube Loader sitesinden Loader Wizard zip dosyasını indirmek.

Ion Cube İndirme Sayfası

İndirdiğimiz zip içindeki loader-wizard.php dosyasını WAMP www dizinine atalım ve http://localhost/loader-wizard.php loader dosyasını localhostta çalıştıralım. 

Ion Cube Kurulum Aşamaları

Yukarıdaki Ion Cube kurulum aşamalarını izleyelim.

Birinci maddedeki zip dosyasını indirelim. İndirdiğimiz zip içindeki dosyaları C:\wamp64\bin\php\php7.2.10\ext dizinine atalım.

C:\wamp64\bin\php\php7.2.10\phpForApache.ini dosyasını düzenleme modunda açalım.

zend_extension = “c:/wamp64/bin/php/php7.2.10/ext/\ioncube_loader_win_7.2.dll” ion cube dosyamızın yolunu belirtelim ve kaydedelim. İlk satıra kopyalayıp yapıştırmanız yeterlidir.

Dosyayı kaydettikten sonra WAMP serverin tüm hizmetlerini yeniden başlatalım. Apache’yi yeniden başlatmanız yeterli ancak tek tek kim uğraşacak 😀 Sistem tepsisindeki WAMP simgesine sağ tıklayıp Refresh’e tıklamanız yeterli tüm servisler yeniden başlayacaktır.

Son olarak kurulum aşamalarında 5. madde de kurulumu kontrol etmek bir kontrol linki mevcut, linke tıklayın ve kontrol edin. Eğer başarılı bir şekilde tamamladıysanız. Aşağıdaki gibi bir sayfa gelecektir. Sayfada kurulumun başarılı olduğu yazmaktadır.

Ion Cube Kurulumu Başarılı

Son hatırlama olarak %100 güvenlik diye bir şey yoktur. Bir yerlerde mutlaka bir açık, bir güvenlik zafiyeti kalır amaç bunu en aza indirgemektir. Kodlarınızın güvenliği için kullanıcıdan aldığınız her verinin mutlaka denetlemeniz gerektiğini sakın unutmayın. Ufak bir unutkanlık büyük sorunlara yol açabilir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir