Miklix

CRC-32C Хэш кодын тооцоолуур

Нийтэлсэн: 2025 оны гуравдугаар сарын 19 20:52:21 (UTC)

Текст оруулах эсвэл файл байршуулах зэрэгт үндэслэн хэш кодыг тооцоолохдоо CRC-32C (Циклийн илүүдэл шалгах 32 бит, C хувилбар) хэш функцийг ашигладаг хэш кодын тооцоолуур.

Энэ хуудсыг аль болох олон хүнд хүртээмжтэй болгох үүднээс англи хэлнээс орчуулсан. Харамсалтай нь машин орчуулга нь төгс төгөлдөр технологи болоогүй байгаа тул алдаа гарч болзошгүй. Хэрэв та хүсвэл англи хэл дээрх эх хувилбарыг эндээс үзэх боломжтой.

CRC-32C Hash Code Calculator

Cyclic Redundancy Check (CRC) нь түүхий өгөгдлийн санамсаргүй өөрчлөлтийг илрүүлэхэд түгээмэл хэрэглэгддэг алдаа илрүүлэх код юм. Техникийн хувьд криптограф хэш функц биш ч гэсэн CRC-32 нь хувьсах урттай оролтоос тогтмол хэмжээтэй гаралт (32 бит) гаргах чадвартай тул ихэвчлэн хэш гэж нэрлэдэг. Энэ хуудсанд танилцуулсан хувилбар нь CRC-32C хувилбар бөгөөд шинэ, "ухаалаг" (илүү сайн алдаа илрүүлэх) хувилбар бөгөөд ихэвчлэн орчин үеийн CPU-үүд (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 ба түүнээс дээш хувилбартай CPU ашиглаж байгаа бол энэ нь хардверийн хурдсалтаар дэмжигдсэн байдаг бөгөөд та бусад хувилбаруудтай нийцүүлэх шаардлагагүй.

Би бусад хувилбаруудын тооцоолууртай:

Bluesky дээр хуваалцаарайFacebook дээр хуваалцахLinkedIn дээр хуваалцахTumblr дээр хуваалцахX дээр хуваалцаарайLinkedIn дээр хуваалцахPinterest дээрх пин

Миккел Кристенсен

Зохиогчийн тухай

Миккел Кристенсен
Миккел бол miklix.com сайтыг бүтээгч, эзэмшигч юм. Тэрээр мэргэжлийн компьютерийн программист/програм хангамж хөгжүүлэгчээр 20 гаруй жил ажилласан туршлагатай бөгөөд одоогоор Европын томоохон мэдээллийн технологийн корпорацид бүтэн цагаар ажиллаж байна. Блог хөтлөөгүй үедээ тэрээр чөлөөт цагаа олон төрлийн сонирхол, хобби, үйл ажиллагаанд зарцуулдаг бөгөөд энэ нь энэ вэб сайтад багтсан олон янзын сэдвүүдэд тодорхой хэмжээгээр тусгагдсан байж магадгүй юм.