MD5 İle Şifreleme
MD5 (Message-Digest algorithm 5), veri bütünlüğünü test etmek için kullanılan, Ron Rivest tarafından 1991 yılında geliştirilmiş bir kriptografik özet (tek yönlü şifreleme) algoritmasıdır. Girdi verinin boyutundan bağımsız olarak 128 bitlik özetler üretir.
MD5′deki her girdinin benzersiz olması mümkün değildir, çünkü üretilen “özet” sonuç olarak 128 bittir, ancak MD5′le şifrelenebilecek bilgiler sonsuza gider.
MD5 girdilerinin çözümlenmesi teorik olarak imkânsızdır.Fakat bazı md5 veritabanları sayesinde 8 karaktere kadar çeviri yapılabilmektedir.Bu veritabanları sizin girdinizi önceden oluşturulmuş binlerce veri girdisinde tarayarak bulduğu sonucu size verir.
Aynı işlevi sunan algoritmalara örnek olarak SHA-1 ve RIPEMD-160 verilebilir.
Kaynak:Wiki
[bilgi]
Örnek:
Orjinal Karakter Kümesi – Bu Yazı 5 Para Etmez
Şifrelenmiş Hali – 526b8169ab4e70958a551369c94a4e54
Örnek Kod:
<?php
echo md5('Bu Yazı 5 Para Etmez');
?>
[/bilgi]
Sha1 İle Şifreleme
Secure Hashing Algorithm 1 in kısaltılmış halidir. Özetleme fonksiyonlarından olan SHA-1 herhangi bir uzunluktaki bir metnin sabit uzunluktaki özetini oluşturur. Bu özet, veri bütünlüğü ve kimlik doğrulaması ile ilgili uygulamalarda temel yapıtaşı haline gelmiştir. SHA, (Secure Hash Algorithm) NSA (National Security Agency) tarafından tasarlanmıştır.
SHA-0, SHA-1 ve SHA-2 olmak üzere üç versiyonu vardır. SHA-3 için yine uluslararası bir yarışma devam etmektedir ve bu yarışmanın sonunda birinci algoritmanın kullanıma sunulacağı duyuruldu.
Kaynak:Wiki
[bilgi]
Örnek:
Orjinal Karakter Kümesi – Bu Yazı 5 Para Etmez
Şifrelenmiş Hali – 4fa03163bde9f3f034765fcabcf30c5ce28f7bbc
Örnek Kod:
<?php
echo sha1('Bu Yazı 5 Para Etmez');
?>
[/bilgi]
Crypt Şifreleme Metodu
crypt() işlevi standart Unix DES şifreleme algoritmasını veya sistemdeki uygun algoritmalardan birini kullanarak dizge dizgesinin şifrelenmiş sürümünü döndürür.
Bazı işletim sistemleri birden fazla şifreleme türü destekler. Çoğunlukla da standart DES şifrelemesinin yerini MD5 şifreleme algoritması alır. Şifreleme türü tuz değiştirgesiyle tetiklenir. Tuz kabul edecek şifreleme türlerini ve işlevin yeteneklerini PHP kurulum sırasında saptar. tuz belirtilmemişse ve sistemin öntanımlı şifreleme türü MD5 ise rasgele bir MD5 uyumlu bir tuz üretilir; sistemin öntanımlı şifreleme türü MD5 değilse PHP öntanımlı olarak iki karakterlik tuz üretir. PHP, CRYPT_SALT_LENGTH sabitinde tuz uzunluğunu tanımlayarak, sistemde iki karakterlik mi yoksa daha uzun bir tuz mu (en fazla 20) kullanıldığını belirtir.
Standart DES şifrelemesinde crypt() işlevi tuz olarak çıktının ilk iki karakterini döndürür. Ayrıca, dizgenin sadece ilk sekiz karakterini kullanır, bu nedenle ilk sekiz karakteri aynı olan sekiz karakterden daha uzun dizgeler için tuz aynı olduğu sürece hep aynı sonucu üretir.
İşlevin çok sayıda şifreleme algoritması ile desteklendiği sistemlerde aşağıdaki sabitler desteklenen şifreleme türüne göre 0 veya 1 değerini alırlar:
- CRYPT_STD_DES – İki karakterlik tuz kullanan standart DES şifrelemesi.
- CRYPT_EXT_DES – Dokuz karakterlik tuz kullanan gelişkin DES şifrelemesi.
- CRYPT_MD5 – $1$ ile başlayan on iki karakterlik MD5 şifrelemesi.
- CRYPT_BLOWFISH – $2$ veya $2a$ ile başlayan on altı karakterlik Blowfish şifrelemesi.
Kaynak:PHP Manuel TR
[bilgi]
<?php
$parola = crypt('parolam'); // Tuzu PHP üretsin
/* Parola karşılaştırmasında, farklı şifreleme algoritmaları ile ilgili
sorunlardan kaçınmak için crypt() sonucunun tamamını tuz olarak işleve
aktarmalısınız. (Yukarıda belirtildiği gibi standart DES parola özetleri
2 karakterlik tuz kullanırken MD5 parola özetleri 12 karakterlik tuz
kullanır.) */
if (crypt($kullanıcı _girdisi, $parola) == $parola) {
echo "Parola doğru!";
}
?>
<?php
// Parolayı tanmılayalım
$parola = 'parolam';
// Tuzu PHP üretsin ve bize parola özetini versin
$hash = crypt($parola);
?>
[/bilgi]
Not:
Şifreleme Yaparken Herzaman İçin İkisini İç İçe Kullanmanız Herzaman Daha Güvenli Olacaktır.
md5(sha1(‘Metin’)); Şeklinde md5 ve sha1 şifrelemeleri ile önce sha1 yapıp sonra sh1 şifreli metini md5 ile şifreliyerek daha zor bulunabilinicek bir şifreleme metodu kullanabilirsiniz.