Miklix

CRC-32C Калкулатор на хеш код

Публикувано: 17 февруари 2025 г. в 18:39:54 ч. UTC

Калкулатор на хеш код, който използва хеш функцията CRC-32C (Cyclic Redundancy Check 32 bit, C вариант) за изчисляване на хеш код въз основа на въвеждане на текст или качване на файл.

Тази страница е машинно преведена от английски език, за да бъде достъпна за възможно най-много хора. За съжаление машинният превод все още не е съвършена технология, така че могат да възникнат грешки. Ако предпочитате, можете да видите оригиналната версия на английски език тук:

CRC-32C Hash Code Calculator

Cyclic Redundancy Check (CRC) е код за откриване на грешки, който обикновено се използва за откриване на случайни промени в необработените данни. Въпреки че технически не е криптографска хеш функция, CRC-32 често се нарича хеш поради способността си да произвежда изход с фиксиран размер (32 бита) от вход с променлива дължина. Версията, представена на тази страница, е вариантът CRC-32C, който е по-нова, „по-интелигентна“ (по-добро откриване на грешки) версия, която често е хардуерно ускорена на модерни процесори (чрез SSE 4.2).

Пълно разкритие: не съм написал конкретната реализация на хеш функцията, използвана на тази страница. Това е стандартна функция, включена в езика за програмиране PHP. Направих само уеб интерфейс, за да я направя публично достъпна тук за удобство.


Изчисляване на нов хеш код

Предоставените данни или файловете, качени чрез този формуляр, се съхраняват на сървъра само толкова дълго, колкото е необходимо за генериране на искания хеш код. Те ще бъдат изтрити непосредствено преди резултатът да бъде върнат на вашия браузър.

Входни данни:



Подаденият текст е кодиран в UTF-8. Тъй като хеш-функциите работят с двоични данни, резултатът ще бъде различен от този, ако текстът е в друго кодиране. Ако трябва да изчислите хеш на текст в определено кодиране, вместо това трябва да качите файл.



Относно хеш алгоритъма 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 и по-нови) и не се нуждаете от съвместимост с други варианти.

Имам калкулатори и за другите варианти:

Споделете в BlueskyСподелете във FacebookСподелете в LinkedInСподелете в TumblrСподелете в XСподелете в LinkedInЗакачи в Пинтерест

Микел Банг Кристенсен

За автора

Микел Банг Кристенсен
Микел е създател и собственик на сайта miklix.com. Той има над 20 години опит като професионален компютърен програмист/разработчик на софтуер и в момента работи на пълен работен ден в голяма европейска ИТ корпорация. Когато не пише в блога, той прекарва свободното си време в широк спектър от интереси, хобита и дейности, които до известна степен могат да бъдат отразени в разнообразието от теми, обхванати в този уебсайт.