kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
mavzermete 1
mavzermete
xranzei 1
xranzei
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle

Altın Konu PHP – Karma İşlem

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

"Karma" terimi, sabit uzunlukta bir değer elde etmek için verileri (özellikle bir metni) şifreleme tekniğini temsil eder. PHP kütüphanesi, md5, SHA2, HMAC vb. gibi farklı karma algoritmaları uygulayarak veriler üzerinde karma işlemi gerçekleştirebilen bir dizi işlevi içerir. Elde edilen şifrelenmiş değere orijinal anahtarın karması denir.

Karma işleminin işlenmesi tek yönlü bir işlemdir, yani orijinal anahtarı elde etmek için karmayı tersine çevirmek mümkün değildir.

Hashing Uygulamaları

Karma tekniği aşağıdaki amaçlar için etkili bir şekilde kullanılır:

Şifre Kimlik Doğrulaması

Gmail, Facebook vb. gibi çeşitli çevrimiçi uygulamalara sıklıkla kayıt oluruz. Çevrimiçi bir hesap için bir parola oluşturduğunuz bir formu doldurmanız gerekir. Sunucu parolanızı karıştırır ve karıştırılmış değer veritabanında saklanır. Giriş sırasında, gönderilen parola karıştırılır ve veritabanındakiyle karşılaştırılır. Bu, parolanızın çalınmasını önler.

Veri Bütünlüğü

Karma işleminin önemli kullanımlarından biri, verilerin değiştirilip değiştirilmediğini doğrulamaktır. Bir dosya internetten indirildiğinde, dosyanın bozulmadığından emin olmak için indirilenle karşılaştırabileceğiniz karma değeri gösterilir.


Hashing İşlemi

Karma oluşturma işlemi aşağıdaki şekille gösterilebilir:

php_hashing.jpg

PHP'de Karma Algoritmaları

PHP bir dizi karma algoritmasını destekler:

  • MD5 − MD5, yazılımda aktarılan dosyaların bütünlüğünü doğrulamak için yaygın olarak kullanılan 128 bitlik bir karma işlevidir. 128 bitlik karma değeri genellikle 32 basamaklı bir onaltılık sayı olarak gösterilir. Örneğin, "kurbağa" sözcüğü her zaman "8b1a9953c4611296a827abf8c47804d7" karmasını üretir.
  • SHA − SHA, Güvenli Karma Algoritma anlamına gelir. Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) tarafından geliştirilen bir standart ailesidir. SHA, MD5'in değiştirilmiş bir sürümüdür ve veri ve sertifikaları karıştırmak için kullanılır. SHA-1 ve SHA-2, bu algoritmanın iki farklı sürümüdür. SHA-1, 160 bitlik bir karmadır. SHA-2 aslında bir karma "ailesidir" ve çeşitli uzunluklarda gelir, en popüleri 256 bitliktir.
  • HMAC − HMAC (Karma Tabanlı Mesaj Kimlik Doğrulama Kodu), bir karma işlevi ve gizli bir anahtar kullanan bir kriptografik kimlik doğrulama tekniğidir.
  • HKDF − HKDF, HMAC mesaj kimlik doğrulama koduna dayalı basit bir Anahtar Türetme Fonksiyonu'dur (KDF).
  • PBKDF2 − PBKDF2 (Parola Tabanlı Anahtar Türetme İşlevi 2), parolalardan kriptografik anahtarlar oluşturan bir karma algoritmasıdır.

PHP'de Karma Fonksiyonlar

PHP kütüphanesi çeşitli karma işlevleri içerir:

hash_algos Fonksiyonu

Bu fonksiyon, desteklenen karma algoritmalarının listesini içeren sayısal olarak dizinlenmiş bir dizi döndürür.

hash_algos(): array

hash_file Fonksiyonu

Fonksiyon, hesaplanan mesaj özetini küçük harfli heksitler halinde içeren bir dize döndürür.

hash_file(
string $algo,
string $filename,
bool $binary = false,
array $options = []
): string|false

Algo parametresi, seçilen karma algoritmasının türüdür (yani "md5", "sha256", "haval160,4", vb.). Dosya adı, karma işlemi uygulanacak dosyanın konumunu tanımlayan URL'dir; fopen sarmalayıcılarını destekler.

Örnek

Aşağıdaki örneğe bir göz atın.

PHP:
<?php
   /* Create a file to calculate hash of */
   $fp=fopen("Hello.txt", "w");
   $bytes = fputs($fp, "The quick brown fox jumped over the lazy dog.");
   fclose($fp);
   echo hash_file('md5', "Hello.txt");
?>

Aşağıdaki çıktıyı üretecektir:

5c6ffbdd40d9556b73a21e63c3e0e904

hash() Fonksiyonu

hash() fonksiyonu bir karma değer (mesaj özeti) üretir:

hash(
string $algo,
string $data,
bool $binary = false,
array $options = []
): string

Algo parametresi, seçilen karma algoritmasının türüdür (yani "md5", "sha256", "haval160,4", vb.). Veri parametresi, karma işlemi yapılacak mesajdır. İkili parametre " true " ise, ham ikili veri çıkışı verir; "false" ise küçük harfli heksitler çıkışı verir.

Örnek

Fonksiyon, hesaplanan mesaj özetini küçük harfli heksitler halinde içeren bir dize döndürür.

PHP:
<?php
   echo "Using SHA256 algorithm:" . hash('sha256', 'The quick brown fox jumped over the lazy dog.'). PHP_EOL;
   echo "Using MD5 algorithm:",hash('md5', 'The quick brown fox jumped over the lazy dog.'), PHP_EOL;
   echo "Using SHA1 algorithm:" . hash('sha1', 'The quick brown fox jumped over the lazy dog.');
?>

Aşağıdaki çıktıyı üretecektir:

Using SHA256 algorithm:68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483
Using MD5 algorithm:5c6ffbdd40d9556b73a21e63c3e0e904
Using SHA1 algorithm:c0854fb9fb03c41cce3802cb0d220529e6eef94e
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst