Fowler-Noll-Vo FNV1-64 Karma Kod Hesaplayıcı
Yayınlandı: 17 Şubat 2025 21:35:17 UTC
Metin girişi veya dosya yüklemesine dayalı bir karma kodu hesaplamak için Fowler-Noll-Vo 1 64 bit (FNV1-64) karma işlevini kullanan karma kodu hesaplayıcısı.Fowler-Noll-Vo FNV1-64 Hash Code Calculator
FNV-1 64 bitlik karma işlevi, karma değerlerinin iyi bir dağıtımını korurken hızlı karma için tasarlanmış Fowler–Noll–Vo (FNV) karma işlevleri ailesinin bir parçasıdır. Genellikle karma tabloları, toplam kontrolleri ve veri aramaları gibi uygulamalarda kullanılır. Genellikle 16 basamaklı onaltılık bir sayı olarak gösterilen 64 bitlik (8 bayt) bir karma kodu ü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-1 64 bit Karma Algoritması Hakkında
Matematikçi değilim ama bu karma fonksiyonunu matematikçi olmayan arkadaşlarımın anlayabileceği bir benzetme kullanarak açıklamaya çalışacağım. Bilimsel olarak doğru, korkutucu matematiksel bir açıklamayı tercih ederseniz, eminim bunu başka bir yerde bulabilirsiniz ;-)
Öncelikle, FNV-1 algoritmasını özel bir smoothie yapmak için bir tarif gibi düşünelim. Eklediğiniz her bir bileşen (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ırmaktır, böylece tarifte en ufak bir değişiklik bile (örneğin bir yaban mersini daha eklemek) smoothie'nin tadını tamamen farklı hale getirir. Karma işlevleri böyle çalışır - her benzersiz malzeme seti (veya girdi verisi) için benzersiz bir "lezzet" (veya karma değeri) oluştururlar.
FNV-1 algoritmasının bunu gerçekleştirme şekli çok adımlı bir süreçtir:
Adım 1: Bir Tabanla Başlayın (Ofset Tabanı)
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 (Verileri İşleme)
Şimdi malzemelerinizi teker teker eklemeye başlayın - diyelim ki bir çilek, sonra bir muz, sonra biraz bal. Bunların her biri bir veri baytını temsil eder.
Adım 3: Gizli Bir Çarpanla Karıştırın (FNV Prime)
Her bir malzemeyi ekledikten sonra, karıştırma düğmesine basıyorsunuz, ancak burada bir değişiklik var: blender her şeyi FNV asal sayısı adı verilen gizli bir "sihirli sayı" ile çarpıyor. Bu, her şeyi gerçekten iyi karıştırmaya yardımcı oluyor.
Adım 4: Bir Sihir Parçası Ekleyin (XOR İşlemi)
Bir sonraki malzemeyi eklemeden önce, biraz sihirli toz serpin (bu XOR işlemidir). Lezzeti beklenmedik şekillerde değiştirmek gibidir, küçük değişikliklerin bile büyük bir fark yaratmasını sağlar.
Adım 5: Tamamlanana Kadar Tekrarlayın
Her yeni malzemeyi işledikten sonra karıştırmaya ve sihir serpiştirmeye devam ediyorsunuz, ta ki her şeyi işleyene kadar.
Adım 6: Son Smoothie (Karma Değer)
İşiniz bittiğinde, smoothie'yi dökün. Son tat (hash değeri) tam olarak o bileşen kombinasyonuna özgüdür. Bir tane bile fazladan yaban mersini ekleseydiniz, tadı tamamen farklı olurdu.
Burada sunulan sürüm orijinal FNV-1 64 bit sürümüdür. Ayrıca geliştirilmiş bir FNV-1a 64 bit sürümü de mevcuttur: Fowler-Noll-Vo FNV1a-64 Karma Kod Hesaplayıcı