CRC-32B Hash Kodu Kalkulyatoru
Nəşr olundu: 17 fevral 2025 at 18:34:40 UTC
Mətn daxilinə və ya fayl yükləməsinə əsaslanan hash kodunu hesablamaq üçün CRC-32B (Cyclic Redundancy Check 32 bit, B variant) hash funksiyasından istifadə edən hash kodu kalkulyatoru.CRC-32B Hash Code Calculator
Cyclic Redundancy Check (CRC) adətən xam məlumatlarda təsadüfi dəyişiklikləri aşkar etmək üçün istifadə edilən səhv aşkarlayan koddur. Texniki cəhətdən kriptoqrafik hash funksiyası olmasa da, CRC-32 dəyişən uzunluqlu girişdən sabit ölçülü çıxış (32 bit) çıxarmaq qabiliyyətinə görə tez-tez hash adlanır. Bu səhifədə təqdim olunan versiya CRC-32B variantıdır ki, bu, həqiqətən, PHP dilində bitləri dəyişdirən bir qəribəlikdir (orijinal CRC-32-də kiçik-endian və big-endian).
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.
CRC-32B Hash Alqoritmi haqqında
Mən riyaziyyatçı deyiləm, amma bu hash funksiyasını sadə bir bənzətmə ilə izah etməyə çalışacağam. Bir çox kriptoqrafik hash funksiyalarından fərqli olaraq, bu, xüsusilə mürəkkəb bir alqoritm deyil, buna görə də hər şey qaydasında olacaq ;-)
Təsəvvür edin ki, siz poçtla məktub göndərirsiniz, lakin alıcıya çatmazdan əvvəl məktubun zədələnə biləcəyindən narahatsınız. Məktubun məzmununa əsasən, siz CRC-32 yoxlama məbləğini hesablayırsınız və bunu zərfin üzərinə yazın. Alıcı məktubu aldıqda, yoxlama məbləğini də hesablaya və onun yazdıqlarınıza uyğun olub-olmadığını görə bilər. Əgər belədirsə, məktub yol boyu zədələnməyib və ya dəyişdirilməyib.
CRC-32-nin bunu etmə üsulu dörd addımlı prosesdir:
Addım 1: Bəzi Əlavə Yer əlavə edin (doldurma)
- CRC mesajın sonunda bir az əlavə otaq əlavə edir (məsələn, fıstıqları qutuda qablaşdırmaq kimi).
- Bu, səhvləri daha asan aşkar etməyə kömək edir.
Addım 2: Sehrli Hökmdar (Polinom)
- CRC-32 məlumatları ölçmək üçün xüsusi "sehrli hökmdar" istifadə edir.
- Bu hökmdarı qabar və yivlər nümunəsi kimi düşünün (bu çoxhədlidir, lakin bu sözdən narahat olmayın).
- CRC-32 üçün ən çox yayılmış "hökmdar" sabit bir modeldir.
Addım 3: Hökmdarın sürüşdürülməsi (Bölmə Prosesi)
- İndi CRC hökmdarı mesaj boyunca sürüşdürür.
- Hər bir nöqtədə qabarların və yivlərin düzüldüyünü yoxlayır.
- Əgər onlar düzülməsələr, CRC qeyd edir (bu, sadə XOR-dan istifadə etməklə edilir, məsələn, açarları açmaq və ya söndürmək).
- O, sonuna çatana qədər sürüşdürməyə və açarları çevirməyə davam edir.
Addım 4: Yekun Nəticə (Yoxlama məbləği)
- Hökmdarı bütün mesaj boyunca sürüşdürdükdən sonra, orijinal məlumatları təmsil edən kiçik bir rəqəm (32 bit uzunluğunda) qalır.
- Bu nömrə mesaj üçün unikal barmaq izinə bənzəyir.
- Bu CRC-32 yoxlama məbləğidir.
Səhifədə təqdim olunan versiya CRC-32B variantıdır, bu, əsasən bit sırasını dəyişdirən PHP qəribəliyidir (little-endian vs big-endian). Yəqin ki, bu versiyadan yalnız onu istifadə edən başqa PHP proqramı ilə uyğunluğa ehtiyacınız olduqda istifadə etməlisiniz.
Digər variantlar üçün də kalkulyatorlarım var: