İnternet, bilgi, bilişim güvenliğine dair her türlü karalamalara sahiplik yapan kişisel bir blog.

PHP şifreleme metodları (Md5, Crypt, Sha1 ve crc32)

Bu konumuzda PHP’nin güvenlik ile ilgili bölümlerinden olan Md5, Crypt, Sha1 ve crc32 metodlarını inceleyeceğiz.

Md5, Crypt, Sha1 ve crc32 metodları ne işe yarar?
Web uygulamalarında kullanıcıların parolalarını güvenle saklamak için kullanılan yöntemlerdir.

Kullanım şekli:

md5($sifrelenecek_deger);

Örnek

Ekrandaki çıktı: 81dc9bdb52d04dc20036dbd8313ed055
Diyelimki üye kayıt işleminde md5 ile şifreleme kullanacaksınız. Üyeden alınan şifreyi md5($sifre); fonksiyonu ile şifreledikten sonra veritabanına kaydederiz. Üye Giriş sayfasında da gelen parola bilgisini aynı şekilde md5($gelen_sifre); fonksiyonu yardımıyla şifrelenmiş şekliyle veritabanından sorgulama yaptırırız.

Md5 şifreleme metodu ile şifrelenmiş bir parolanın kırılması mümkün değildir diyemeyiz. Nedeni ise, kullanıcıların şifrelerinin kısa olmasıdır. Yani ziyaretçi 1234 veya 6789 gibi bir şifre kullanıyorsa, bu şifrenin Md5′ini kırmak 1 dk bile sürmeyecektir. Ama parolasının içinde büyük-küçük harf, rakam ve özel karakter de bulunuyorsa kırılması neredeyse imkansızdır.

Güvenli parola örneği: cA1397%x**+_B

Kullanması pek pratik olmasa da güvenli olduğu kesin 🙂

Crypt, Sha1 ve crc32 metodları

Bu şifreleme metodlarını da aynı md5′de olduğu gibi kullanabiliriz.
Kullanım şekli:

crypt($1234);

Ekrandaki çıktı: $1$hJ..WK1.$WXgbWRRS2KrhzEfliDrAL0

sha1($1234);

Ekrandaki çıktı: 7110eda4d09e062aa5e4a390b0a572ac0d2c0220

crc32($1234);

Ekrandaki çıktı: -1679564637

Şifreleme metodları hakkında genel olarak bilgi sahibi olduk.
Sizlere tavsiyem, şifreleme işlemini güçlendirmek için md5 yada diğer yöntemler ile şifrelediğiniz veriyi, en az 3 defa daha şifrelemeniz. Böylece kırılması neredeyse imkansız olur. Sonuçlarını daha iyi anlamanız için md5 ile 1,2 ve 3 defa şifrelenmiş verileri kırmaya çalıştığımızda aldığımız sonuçlara bakalım:

md5(); ile 1234′ün şifrelenmiş hali:
1 defa şifrelenen: 81dc9bdb52d04dc20036dbd8313ed055

MD5 şifreleme

2 defa şifrelenen: ec6a6536ca304edf844d1d248a4f08dc

MD5 şifreleme

3 defa şifrelenen: 2e99bf4e42962410038bc6fa4ce40d97

MD5 şifreleme

Gördüğünüz gibi 1234 rakamının 1 defa şifrelenmiş hali kırılabiliyor. Ancak, şifrelenmiş veriyi 2 ve 3 kez tekrar şifrelediğimizde resimde de görüldüğü gibi şifre kırılamadı. Yani kullanıcı şifresini 1234 gibi kırılabilir basit bir şifre dahi yapsa siz bunun güvenlik önlemini almış oluyorsunuz.

Mustafa

2004 yılından bu yana Web ve Bilgi Güvenliği üzerine araştırmalarda bulundum. Çok sayıda yerli yada yabancı websitelerinde bulunan zaafiyetleri ilgililere göndererek kapatılmasını sağladım. Octosec ailesindenim. Siber Güvenlik Eylem Planı kapsamında TSE Kayıtlı Sızma Uzmanı sertifikam bulunmaktadır.

1 Comment

Leave a Reply