Fowler-Noll-Vo FNV1-32 Hash Kodu Kalkulyator
Nəşr olundu: 18 fevral 2025 at 00:17:41 UTC
Son yeniləmə: 12 yanvar 2026 at 13:29:42 UTC
Fowler-Noll-Vo FNV1-32 Hash Code Calculator
FNV-1 32-bitlik heş funksiyası, heş dəyərlərinin yaxşı paylanmasını təmin edərkən sürətli heşləmə üçün hazırlanmış Fowler-Noll-Vo (FNV) heş funksiyaları ailəsinin bir hissəsidir. Bu funksiya, adətən, heş cədvəlləri, yoxlama cəmi və məlumat axtarışı kimi tətbiqlərdə istifadə olunur. O, tez-tez 8 rəqəmli onaltılıq ədəd kimi təmsil olunan 32 bitlik (4 bayt) heş kodu yaradır.
Tam açıqlama: Mən bu səhifədə istifadə olunan hash funksiyasının konkret icrasını yazmamışam. Bu PHP proqramlaşdırma dilinə daxil edilmiş standart funksiyadır. Mən yalnız rahatlıq üçün veb-interfeysi burada ictimaiyyətə açıq etmək üçün etdim.
Fowler-Noll-Vo FNV-1 32 bitlik heş alqoritmi haqqında
Mən riyaziyyatçı deyiləm, amma bu heş funksiyasını riyaziyyatçı olmayan həmkarlarımın başa düşə biləcəyi bir bənzətmə ilə izah etməyə çalışacağam. Əgər elmi cəhətdən düzgün, qorxulu riyazi izahata üstünlük verirsinizsə, əminəm ki, bunu başqa yerdə tapa bilərsiniz ;-)
Əvvəlcə, gəlin FNV-1 alqoritmini xüsusi smuzi hazırlamaq üçün resept kimi düşünək. Əlavə etdiyiniz hər bir inqrediyent (məsələn, meyvə, süd və ya bal) hərflər, rəqəmlər və ya hətta bütün bir fayl kimi bir məlumat parçasını təmsil edir.
İndi məqsəd bu inqrediyentləri çox spesifik bir şəkildə qarışdırmaqdır ki, reseptdəki ən kiçik dəyişiklik belə (məsələn, bir əlavə qaragilə əlavə etmək) smuzinin dadını tamamilə fərqli etsin. Heş funksiyaları belə işləyir - onlar hər unikal inqrediyent dəsti (və ya giriş məlumatları) üçün unikal bir "dad" (və ya heş dəyəri) yaradırlar.
FNV-1 alqoritminin bunu etmə üsulu çoxmərhələli bir prosesdir:
Addım 1: Baza ilə başlayın (Ofset Bazası)
Bunu blenderə xüsusi smuzi əsasını tökmək kimi düşünün. Bu əsas, hansı inqrediyentləri əlavə etməyinizdən asılı olmayaraq, həmişə eynidir. FNV-1-də buna "ofset əsası" deyilir - sadəcə başlanğıc rəqəmi.
Addım 2: Tərkib hissələrini bir-bir əlavə edin (Məlumatların emalı)
İndi inqrediyentlərinizi bir-bir əlavə etməyə başlayırsınız - deyək ki, bir çiyələk, sonra banan və bir az bal. Bunların hər biri bir bayt məlumatı təmsil edir.
Addım 3: Gizli Çarpanı (FNV Prime) ilə qarışdırın
Hər inqrediyenti əlavə etdikdən sonra qarışdırma düyməsini basırsınız, amma məsələ burasındadır: blender hər şeyi FNV prime adlanan gizli "sehrli ədədə" vurur. Bu, məhsulların çox yaxşı qarışdırılmasına kömək edir.
Addım 4: Bir az Sehr Əlavə Et (XOR Əməliyyatı)
Növbəti inqrediyenti əlavə etməzdən əvvəl, üzərinə bir az sehrli toz səpirsiniz (bu, XOR əməliyyatıdır). Bu, dadı gözlənilməz şəkildə dəyişdirmək kimidir, hətta kiçik dəyişikliklərin belə böyük fərq yaratmasını təmin edir.
Addım 5: Bitənə qədər təkrarlayın
Hər şeyi emal edənə qədər hər yeni inqrediyentdən sonra qarışdırmağa və sehr səpməyə davam edirsiniz.
Addım 6: Son Smuzi (Heş Dəyəri)
Bitirdikdən sonra smuzini tökürsünüz. Son dad (haş dəyəri) məhz həmin inqrediyentlərin kombinasiyasına xasdır. Əgər bir dənə də əlavə qaragilə əlavə etsəydiniz, dadı tamamilə fərqli olardı.
Burada təqdim olunan versiya orijinal FNV-1 32 bitlik versiyasıdır. Təkmilləşdirilmiş FNV-1a 32 bitlik versiyası da mövcuddur: Link
Əlavə Oxu
Bu yazı xoşunuza gəldisə, bu təklifləri də bəyənə bilərsiniz:
