CRC-32C Калкулатор на хеш код
Публикувано: 17 февруари 2025 г. в 18:39:54 ч. UTC
Последна актуализация: 12 януари 2026 г. в 11:37:18 ч. UTC
CRC-32C Hash Code Calculator
Цикличната проверка за излишък (CRC) е код за откриване на грешки, често използван за откриване на случайни промени в суровите данни. Въпреки че технически не е криптографска хеш функция, CRC-32 често се нарича хеш поради способността си да генерира изход с фиксиран размер (32 бита) от вход с променлива дължина. Версията, представена на тази страница, е вариантът CRC-32C, който е по-нова, „по-интелигентна“ (с по-добро откриване на грешки) версия, която често е хардуерно ускорена на съвременни процесори (чрез SSE 4.2).
Пълно разкритие: не съм написал конкретната реализация на хеш функцията, използвана на тази страница. Това е стандартна функция, включена в езика за програмиране PHP. Направих само уеб интерфейс, за да я направя публично достъпна тук за удобство.
Относно хеш алгоритъма CRC-32C
Не съм математик, но ще се опитам да обясня тази хеш функция с проста аналогия. За разлика от много от криптографските хеш функции, това не е особено сложен алгоритъм, така че вероятно ще е добре ;-)
Представете си, че изпращате писмо по пощата, но се притеснявате, че може да се повреди, преди да пристигне при получателя. Въз основа на съдържанието на писмото изчислявате контролна сума CRC-32 и я записвате на плика. Когато получателят получи писмото, той или тя може също да изчисли контролната сума и да види дали тя съвпада с написаното от вас. Ако съвпада, писмото не е било повредено или променено по пътя.
Начинът, по който CRC-32 прави това, е четириетапен процес:
Стъпка 1: Добавете малко допълнително пространство (подплънки)
- CRC добавя малко допълнително място в края на съобщението (като опаковане на фъстъци в кутия).
- Това му помага да открива грешки по-лесно.
Стъпка 2: Магическата линийка (Полиномът)
- CRC-32 използва специална „магическа линийка“ за измерване на данните. Представете си тази линийка като модел от неравности и жлебове (това е полиномът, но не се притеснявайте за тази дума). Най-често срещаната „линийка“ за CRC-32 е фиксиран модел.
Стъпка 3: Плъзгане на линийката (процес на деление)
- Сега CRC плъзга линийката по съобщението. На всяко място проверява дали неравностите и жлебовете съвпадат. Ако не съвпадат, CRC прави бележка (това се прави с помощта на просто XOR, като например включване или изключване на превключватели). Продължава да плъзга и превключва превключвателите, докато стигне до края.
Стъпка 4: Крайният резултат (контролната сума)
- След като плъзнете линийката по цялото съобщение, остава малко число (с дължина 32 бита), което представлява оригиналните данни. Това число е като уникален пръстов отпечатък за съобщението. Това е контролната сума CRC-32.
Версията, представена на страницата, е вариантът CRC-32C, който би трябвало да е предпочитаният вариант, особено ако използвате процесор с хардуерно ускорение (SSE 4.2 и по-нови версии) и не ви е необходима съвместимост с други варианти.
Имам калкулатори и за другите варианти:
- Връзка
- Връзка
Допълнително четене
Ако ви е харесала тази публикация, може да ви харесат и тези предложения:
