MD5
MD5 algoritması ile şifreleme sonucunda 16'lık bir karakter dizgesinden 32 karakterlik bir değer elde edilir. MD5 metodu ile şifrelenen bir değerin, geriye dönüşü olmaz. Yani bu fonksiyon ile şifrelenen bir dizgeyi tekrar geri dönüştüremezsiniz. MD5 her ne kadar geri dönüştürülemediği için güvenli gibi gözükse de, güvenliğimiz için kolay şifreleri kullanmaktan kaçınırsak iyi ederiz.
Şimdi MD5 ile şifrelenmiş bir veriye bakalım:
SHA1
SHA1 algoritması da 16'lık bir karakter dizgesinden 40 karakterlik bir değer elde eder. MD5 için verdiğim önerileri, burada da dikkate alabilirsiniz. Yukardaki örneği bir de sha1 ile şifreleyelim:
CRC32
CRC32 algoritması, belirtilen veriyi şifreleyerek tam sayı olarak geriye döndürür. Bu sayı negatif veya pozitif bir tam sayı olabilir. CRC32 metodununda yukarda incelediğimiz diğer metodlar gibi geri dönüşü yoktur. Bir örnekle inceleyelim:
BASE64
BASE64 şifreleme algoritması, diğer metodların aksine geri dönüştürülebilir. Yani şifrelediğiniz bir veriyi, tekrar eski haline getirebilirsiniz. BASE64 ile şifrelediğiniz veri, orjinal içeriğe göre %30 daha fazla yer kaplar. Bu şifreleme metodunu kullanmak için base64_encode, geri dönüştürmek için ise base64_decode fonksiyonlarını kullanacağız.
CRYPT
Crypt metodu hemen hemen Md5 metoduyla benzerlik gösteren bir şifreleme yöntemidir. Bu fonksiyonu, Md5 metodundan farkı olarak daha karmaşık bir veri şifreleme çıktısı elde etmektedir. Bundan dolayı bazı programcılar Crypt’nin daha karmaşık bir şifreleme yapısına sahip olmasından dolayı şifreleme olarak tercihlerini bu fonksiyondan yana kullanmaktadırlar.
Ek olarak
ioncube (http://www.ioncube.com) - ücretli
zend guard (http://www.zend.com/en/products/guard) - ücretli
sourceguardian (http://www.sourceguardian.com) - ücretli
monas (http://ombudi.com/) - ücretsiz - off
MD5 algoritması ile şifreleme sonucunda 16'lık bir karakter dizgesinden 32 karakterlik bir değer elde edilir. MD5 metodu ile şifrelenen bir değerin, geriye dönüşü olmaz. Yani bu fonksiyon ile şifrelenen bir dizgeyi tekrar geri dönüştüremezsiniz. MD5 her ne kadar geri dönüştürülemediği için güvenli gibi gözükse de, güvenliğimiz için kolay şifreleri kullanmaktan kaçınırsak iyi ederiz.
Kod:
<?php
$x = 123456;
echo md5($x); // çıktısı: e10adc3949ba59abbe56e057f20f883e
SHA1
SHA1 algoritması da 16'lık bir karakter dizgesinden 40 karakterlik bir değer elde eder. MD5 için verdiğim önerileri, burada da dikkate alabilirsiniz. Yukardaki örneği bir de sha1 ile şifreleyelim:
Kod:
<?php
$x = 123456;
echo sha1($x); // çıktısı: 7c4a8d09ca3762af61e59520943dc26494f8941b
CRC32
CRC32 algoritması, belirtilen veriyi şifreleyerek tam sayı olarak geriye döndürür. Bu sayı negatif veya pozitif bir tam sayı olabilir. CRC32 metodununda yukarda incelediğimiz diğer metodlar gibi geri dönüşü yoktur. Bir örnekle inceleyelim:
Kod:
<?php
$x = 123456;
echo crc32($x); // çıktısı: 158520161
BASE64
BASE64 şifreleme algoritması, diğer metodların aksine geri dönüştürülebilir. Yani şifrelediğiniz bir veriyi, tekrar eski haline getirebilirsiniz. BASE64 ile şifrelediğiniz veri, orjinal içeriğe göre %30 daha fazla yer kaplar. Bu şifreleme metodunu kullanmak için base64_encode, geri dönüştürmek için ise base64_decode fonksiyonlarını kullanacağız.
Kod:
<?php
$x = 123456;
$sifreli_veri = base64_encode($x); // çıktısı: MTIzNDU2
$orjinal_veri = base64_decode($sifreli_veri); // çıktısı: 123456
echo 'Şifreli veri:'.$sifreli_veri.'<br />';
echo 'Orjinal veri:'.$orjinal_veri;
CRYPT
Crypt metodu hemen hemen Md5 metoduyla benzerlik gösteren bir şifreleme yöntemidir. Bu fonksiyonu, Md5 metodundan farkı olarak daha karmaşık bir veri şifreleme çıktısı elde etmektedir. Bundan dolayı bazı programcılar Crypt’nin daha karmaşık bir şifreleme yapısına sahip olmasından dolayı şifreleme olarak tercihlerini bu fonksiyondan yana kullanmaktadırlar.
Kod:
<?php
if(isset($_GET['crc32me'])) {
$crc32gelen = crypt($_GET['crc32me']);
}
?>
<p>CRC32 Değeri: <strong><?php echo $crc32gelen;?></strong></p>
<form action="#" method="get">
<label for="crc32me">CRC32'de şifrelenecek değer:</label>
<input name="crc32me" id="crc32me" type="text" />
<input type="submit" value="Şifrele" />
</form>
Ek olarak
ioncube (http://www.ioncube.com) - ücretli
zend guard (http://www.zend.com/en/products/guard) - ücretli
sourceguardian (http://www.sourceguardian.com) - ücretli
monas (http://ombudi.com/) - ücretsiz - off