Fowler-Noll-Vo FNV1-32 Karma Kod Hesaplayıcısı
Yayınlandı: 18 Şubat 2025 00:16:09 UTC
Son güncelleme: 12 Ocak 2026 13:29:23 UTC
Fowler-Noll-Vo FNV1-32 Hash Code Calculator
FNV-1 32 bitlik karma fonksiyonu, karma değerlerinin iyi bir dağılımını korurken hızlı karma işlemi gerçekleştirmek üzere tasarlanmış Fowler–Noll–Vo (FNV) karma fonksiyon ailesinin bir parçasıdır. Genellikle karma tabloları, sağlama toplamları ve veri aramaları gibi uygulamalarda kullanılır. Genellikle 8 basamaklı onaltılık sayı olarak temsil edilen 32 bitlik (4 baytlık) bir karma kod üretir.
Tam açıklama: Bu sayfada kullanılan hash fonksiyonunun özel uygulamasını ben yazmadım. PHP programlama dili ile birlikte gelen standart bir işlevdir. Ben sadece kolaylık sağlaması için burada herkese açık hale getirmek için web arayüzünü yaptım.
Fowler-Noll-Vo (FNV) 32 bitlik Karma Algoritması Hakkında
Ben bir matematikçi değilim, ama bu karma fonksiyonu, matematikçi olmayan arkadaşlarımın da anlayabileceği bir benzetme kullanarak açıklamaya çalışacağım. Eğer bilimsel olarak doğru, korkutucu matematiksel bir açıklama tercih ederseniz, eminim onu başka yerlerde bulabilirsiniz ;-)
Öncelikle, FNV-1 algoritmasını özel bir smoothie yapma tarifi gibi düşünelim. Eklediğiniz her malzeme (meyve, süt veya bal gibi) bir veri parçasını temsil eder; harfler, sayılar veya hatta tüm bir dosya gibi.
Şimdi amaç, bu malzemeleri çok özel bir şekilde karıştırmak, böylece tarifteki en ufak bir değişiklik bile (örneğin fazladan bir yaban mersini eklemek gibi) smoothie'nin tadını tamamen değiştirsin. İşte karma fonksiyonları böyle çalışır - her benzersiz malzeme kümesi (veya girdi verisi) için benzersiz bir "lezzet" (veya karma değeri) oluştururlar.
FNV-1 algoritmasının bunu yapma şekli çok adımlı bir süreçtir:
Adım 1: Bir Temel ile Başlayın (Ofset Temeli)
Bunu, blenderınıza özel bir smoothie tabanı dökmek gibi düşünün. Bu taban, hangi malzemeleri eklerseniz ekleyin her zaman aynıdır. FNV-1'de buna "ofset tabanı" denir - sadece süslü bir başlangıç numarası.
Adım 2: Malzemeleri Tek Tek Ekleyin (İşleme Verileri)
Şimdi malzemelerinizi teker teker eklemeye başlayın; diyelim ki önce bir çilek, sonra bir muz, sonra da biraz bal. Bunların her biri bir bayt veriyi temsil eder.
3. Adım: Gizli Çarpanla Karıştırın (FNV Prime)
Her malzemeyi ekledikten sonra karıştırma düğmesine basıyorsunuz, ancak işin püf noktası şu: karıştırıcı her şeyi FNV asal sayısı adı verilen gizli bir "sihirli sayı" ile çarpıyor. Bu, malzemelerin gerçekten iyi karışmasına yardımcı oluyor.
Adım 4: Biraz Sihir Katın (XOR İşlemi)
Bir sonraki malzemeyi eklemeden önce, biraz sihirli toz serpiyorsunuz (bu XOR işlemidir). Bu, tadı beklenmedik şekillerde değiştirmek gibidir ve küçük değişikliklerin bile büyük bir fark yaratmasını sağlar.
Adım 5: İşlem tamamlanana kadar tekrarlayın.
Her yeni malzemeyi ekledikten sonra karıştırmaya ve sihirli bir dokunuş katmaya devam edin, ta ki her şey işlenene kadar.
Adım 6: Son Smoothie (Hash Değeri)
Hazırlama işlemi bittiğinde, smoothie'yi bir kaba dökersiniz. Son tadı (karışım değeri) o malzemelerin tam kombinasyonuna özgüdür. Bir tane bile fazla yaban mersini ekleseydiniz, tadı tamamen farklı olurdu.
Burada sunulan sürüm, orijinal FNV-1 32 bit sürümüdür. Ayrıca geliştirilmiş bir FNV-1a 32 bit sürümü de mevcuttur: Bağlantı
Daha Fazla Okuma
Bu yazıyı beğendiyseniz, şu öneriler de ilginizi çekebilir:
