Güncel değerler

Sözlük

Hash fonksiyonu

Kısa tanım

Herhangi uzunluktaki bir veriyi sabit uzunlukta, veriye özgü bir çıktıya (özet değeri) dönüştüren tek yönlü matematiksel fonksiyon.

Diğer adları: Özet fonksiyonu, Karma fonksiyonu, Hash algoritması

İndirdiğin bir dosyanın bozulmadığını ya da değiştirilmediğini nasıl anlarsın? Yayıncının verdiği kısa harf-rakam dizisini, kendi bilgisayarında hesapladığın değerle karşılaştırarak. Bu diziyi üreten araç hash fonksiyonudur.

Temel özellikler

  • Sabit çıktı boyu: girdi bir harf de olsa bir film de olsa SHA-256 çıktısı her zaman 256 bit (64 onaltılık karakter) olur.
  • Belirlenimcilik: aynı girdi her zaman aynı çıktıyı verir.
  • Çığ etkisi: girdideki tek bir bitlik değişiklik çıktıyı tamamen değiştirir.
  • Tek yönlülük: çıktıdan girdiyi geri hesaplamak pratikte mümkün değildir.
  • Çakışma direnci: aynı çıktıyı veren iki farklı girdi bulmak son derece zor olmalıdır.

Yaygın algoritmalar

MD5 128 bit, SHA-1 160 bit, SHA-256 256 bit çıktı üretir. MD5 ve SHA-1 için pratik çakışma saldırıları gösterildiğinden güvenlik amaçlı kullanımları önerilmez; dosya bütünlüğü ve imzalar için SHA-256 ve üstü tercih edilir. Bir metnin özetini SHA-256 hash hesaplama aracında ya da MD5 aracında görebilirsin.

Çakışma olasılığı

Doğum günü paradoksu nedeniyle n bitlik bir özette çakışma beklentisi 2ⁿ değil yaklaşık 2^(n/2) denemede belirginleşir. 128 bitlik bir özet için bu yaklaşık 2⁶⁴ demektir. Örnek: 32 bitlik bir özetle yaklaşık 77.000 kayıt saklandığında en az bir çakışma olasılığı yüzde 50'ye ulaşır. Kendi senaryonu hash çakışma olasılığı aracıyla test edebilirsin.

Nerelerde kullanılır?

  • Parolaların veritabanında açık metin yerine özet olarak saklanması (tuz eklenerek ve bcrypt, Argon2 gibi yavaş algoritmalarla),
  • Dosya ve yazılım paketlerinin bütünlük kontrolü,
  • Dijital imza ve blokzincir,
  • Hash tabloları ile hızlı veri arama.

Şifrelemeyle farkı

Şifreleme iki yönlüdür: anahtarla şifrelenen veri yine anahtarla açılır. Hash ise geri döndürülemez; amaç gizlemek değil, parmak izi çıkarmaktır.

Benzer terimler

İlginizi çekebilir