CRC-32B Калкулатор на хеш код
Публикувано: 17 февруари 2025 г. в 18:22:53 ч. UTC
Калкулатор за хеш код, който използва хеш функцията CRC-32B (Cyclic Redundancy Check 32 bit, B вариант) за изчисляване на хеш код въз основа на въвеждане на текст или качване на файл.CRC-32B Hash Code Calculator
Cyclic Redundancy Check (CRC) е код за откриване на грешки, който обикновено се използва за откриване на случайни промени в необработените данни. Въпреки че технически не е криптографска хеш функция, CRC-32 често се нарича хеш поради способността си да произвежда изход с фиксиран размер (32 бита) от вход с променлива дължина. Версията, представена на тази страница, е вариантът CRC-32B, който всъщност е просто странност в PHP езика, който обръща битовете (little-endian срещу big-endian в оригиналния CRC-32).
Пълно разкритие: не съм написал конкретната реализация на хеш функцията, използвана на тази страница. Това е стандартна функция, включена в езика за програмиране PHP. Направих само уеб интерфейс, за да я направя публично достъпна тук за удобство.
Относно хеш алгоритъма CRC-32B
Не съм математик, но ще се опитам да обясня тази хеш функция с проста аналогия. За разлика от много от криптографските хеш функции, това не е особено сложен алгоритъм, така че вероятно ще е наред ;-)
Представете си, че изпращате писмо по пощата, но се притеснявате, че може да се повреди, преди да пристигне при получателя. Въз основа на съдържанието на писмото изчислявате контролна сума CRC-32 и я записвате върху плика. Когато получателят получи писмото, той или тя може също така да изчисли контролната сума и да види дали съвпада с това, което сте написали. Ако е така, буквата не е била повредена или променена по пътя.
Начинът, по който CRC-32 прави това, е процес в четири стъпки:
Стъпка 1: Добавете малко допълнително пространство (подложка)
- CRC добавя малко допълнително пространство в края на съобщението (като опаковане на фъстъци в кутия).
- Това му помага по-лесно да открива грешки.
Стъпка 2: Магическата линийка (Полиномът)
- CRC-32 използва специална "магическа линийка" за измерване на данните.
- Мислете за тази линийка като модел от неравности и бразди (това е полиномът, но не се притеснявайте за тази дума).
- Най-често срещаната "линийка" за CRC-32 е фиксиран модел.
Стъпка 3: Плъзгане на линийката (процес на разделяне)
- Сега CRC плъзга линийката през съобщението.
- На всяко място той проверява дали неравностите и браздите са подредени.
- Ако не се подредят, CRC прави бележка (това се прави с помощта на просто XOR, като включване или изключване на превключватели).
- Продължава да плъзга и върти превключватели, докато стигне до края.
Стъпка 4: Краен резултат (контролна сума)
- След като плъзнете линийката през цялото съобщение, оставате с малко число (с дължина 32 бита), което представлява оригиналните данни.
- Този номер е като уникален пръстов отпечатък за съобщението.
- Това е контролната сума CRC-32.
Версията, представена на страницата, е вариантът CRC-32B, който е предимно PHP странност, която превключва реда на битовете (little-endian срещу big-endian). Вероятно трябва да използвате тази версия само ако конкретно се нуждаете от съвместимост с друго PHP приложение, което я използва.
Имам калкулатори и за другите варианти: