Калкулатор за хаш код CRC-32C
Објавено: 5 март 2025, во 19:47:00 UTC
Последно ажурирано: 12 јануари 2026, во 11:37:48 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 и понова) и не ви е потребна компатибилност со други варијанти.
Имам калкулатори и за другите варијанти:
- Линк
- Линк
Дополнително читање
Ако ви се допадна овој пост, можеби ќе ви се допаднат и овие предлози:
