PHP Şifreleme Yöntemleri

php şifreleme

PHP Şifreleme Yöntemleri, Şifreleme işlemleri günlük hayatta karşılaştığımız ve sürekli önümüze çıkan bir rutindir. Şifreleme neden bu kadar önemlidir? Önemli verilerimizin korunmasındaki en büyük araç şifrelerdir. Şifreler genel olarak 2 kısımda incelenmektedir. Cihazların algoritmayla oluşturduğu şifreler diğeri ise kişinin kendi belirlediği şifre.

Günümüzde şifreleme yapmak ve şifrelemelerin çözülmesi için bir çok algoritma geliştirilmiştir. Bunlar arasında bir çok yöntem bulunmaktadır. Bu yazıda PHP üzerindeki şifreleme algoritmaları hakkında bilgi paylaşımı yapacağım. Şifreleme algoritmalarının kullanım noktaları kullanıcı girişleri olan e-ticaret siteleri bunun gibi sitelerdir.

Not : Şifreleme algoritmaları temelde, şifrelenmiş verilerin bir de şifresinin bozulup eski haline çevirme algoritmaları vardır. Şifreleme algoritmalarına crypt çözme işlemleri için kullanılanlara ise decrypt diye adlandırılmaktadır.

PHP Şifreleme Algoritmaları

Şifreleme algoritmalarının içeriklerinden bahsettik şimdi bunların ne olduğuna bakalım. Aşağıda şifreleme yöntemlerini liste halinde size sunacağım.

  • Base64 Encode(Şifreleme) ve Base64 Decode(Şifre Çözme)
  • Md5
  • Crypt
  • Sha1
  • crc32

Yukarıda listelediğimiz şifreleme yöntemleri belirli bir standarda göre oluşturulmadığı için kırma işlemi ne yazık ki yapılmamaktadır.

Not: Crypt dışında neredeyse tüm şifreleme yöntemleri parametre olarak verilen veriyi çıktı olarak gelen şifreyi değiştirmeden geri döndürmektedir. Bunu bir örnekle göstermek istiyorum;

Girilen metin: 123456
Çıktı: e10adc3949ba59abbe56e057f20f883e

Veri aynı olduğu sürece çıktı değeri değişmeyecektir.

 

Base64 Encode – Veri Şifreleme

Veri şifreleme için kullanılan ve şifreli verileri sonradan çözebildiğiniz bir yöntemdir. Genellikle şifreleme yöntemleri arasında en çok kullanılanlar arasındadır. Yaptığınız projeye göre değişkenlik gösterebilir. Eğer ihtiyacınızı karşıladığını düşünüyorsanız rahatlıkla kullanabilirsiniz. Tek dez avantajı çevrilen kodun sonradan bir fonksiyon kullanımı ile çözülüyor olmasıdır.

Kod:

<?php
	$veri = 'Şifrelenecek Veri.';
	echo base64_encode($veri);
?>

Çıktı:

XmlmcmVsZW5lY2VrIFZlcmku

Not: Yukarıdaki gibi bir çıktı elde edeceksiniz. Sonradan bu kodu çözmek istediğiniz de ise aşağıdaki işlemi uygulamanız gerekmektedir.

 

Base64 Decode – Şifrelenmiş Veri Çözme

Şifrelediğiniz verileri daha sonradan başka bir yerde kullanmak istiyorsanız aşağıdaki fonksiyonu kullanmanız gerekmektedir.

Kod:

<?php
	$veri = 'XmlmcmVsZW5lY2VrIFZlcmku';
	echo base64_decode($veri);
?>

Çıktı:

Şifrelenecek Veri.

Not: Şifreleme çözücü base64_decode fonksiyonunu kullanırsanız çıktı bölümünde gördüğünüz gibi sonuç alırsınız.

 

Md5 Şifreleme

Md5 şifreleme PHP üzerinde en yaygın kullanılmakta olan md5 şifreleme algoritmalarından biridir. Bu algoritmanın kullanımı bir fonksiyona parametre şeklinde gerçekleşmektedir. Bu işlem üzerinden veri tabanına parolaları şifreleyerek yazabilir. Gerektiğinde ise kontrol edeceğiniz veriyi veri tabanındaki ile karşılaştırabilirsiniz.

$gelen_sifre = "123456";

echo $sifreli_veri = md5($gelen_sifre);

Açıklama: Gördüğünüz gibi kullanımı son derece kolay olan bu fonksiyonu bir fonksiyon yardımıyla kullanabilirsiniz.

Çıktı:

e10adc3949ba59abbe56e057f20f883e

 

Sha1 Şifreleme

Sha1 şifreleme yöntemi md5 şifreleme yöntemine göre daha uzun şifre üretmektedir. Daha uzun daha iyi olduğu anlamına tabi ki de gelmez ancak şifrenin çözülme ihtimali daha az olacaktır.

Kod:

$gelen_sifre = "123456";

echo $sifreli_veri = sha1($gelen_sifre);

Çıktı:

7c4a8d09ca3762af61e59520943dc26494f8941b

 

crc32 Şifreleme

crc32 şifreleme ile 9 haneli içinde harf olmayan kısa şifreleme oluşturmak için kullanılmaktadır. Daha az güvenliği olan bu yöntem çoğu yerde tercih edilmemektedir.

Kod:

$gelen_sifre = "123456";

echo $sifreli_veri = crc32($gelen_sifre);

Çıktı:

158520161

 

Crypt Şifreleme

Diğer şifreleme yöntemlerine göre crypt şifreleme yöntemi biraz farklıdır. Parametre olarak verilen veri aynı bile olsa şifreleme olarak dışarı farklı sonuçlar çıkmaktadır. Mutlaka kullanım alanları olabilir ama kullanıcı yönetiminde kullanmanız pek mümkün olmayacaktır.

Kod:

$gelen_sifre = "123456";

echo $sifreli_veri = crypt($gelen_sifre);

Çıktı 1:

$1$zx6DvqCh$hdvWlnT.LKTaAZUnXFiJn.

Çıktı 2:

$1$kqra4qHL$2hgPge3.6SRqyncjalWlX/

Çıktı 3:

$1$nxkH4.bb$DrjQE2DSuV9e2RtN5iX9R/
PHP Şifreleme Yöntemleri