Miklix

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

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

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

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

CRC-32B Hash Code Calculator

Cyclic Redundancy Check (CRC) нь түүхий өгөгдлийн санамсаргүй өөрчлөлтийг илрүүлэхэд түгээмэл хэрэглэгддэг алдаа илрүүлэх код юм. Техникийн хувьд криптограф хэш функц биш ч гэсэн CRC-32 нь хувьсах урттай оролтоос тогтмол хэмжээтэй гаралт (32 бит) гаргах чадвартай тул ихэвчлэн хэш гэж нэрлэдэг. Энэ хуудсанд танилцуулсан хувилбар нь CRC-32B хувилбар бөгөөд энэ нь PHP хэл дээрх зүгээр л нэг хачирхалтай бөгөөд битүүдийг эргүүлдэг (анхны CRC-32 дээрх жижиг-эндиан ба биг-эндиан).

Бүрэн тодруулга: Би энэ хуудсанд ашигласан хэш функцийн тодорхой хэрэгжилтийг бичээгүй. Энэ нь PHP програмчлалын хэлэнд багтсан стандарт функц юм. Би зөвхөн вэб интерфэйсийг энд олон нийтэд нээлттэй болгох үүднээс хийсэн.


Шинэ хэш кодыг тооцоолох

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

Өгөгдөл оруулах:



Илгээсэн текст UTF-8 кодлогдсон байна. Хэш функц нь хоёртын өгөгдөл дээр ажилладаг тул үр дүн нь текст өөр кодчилолд байсантай харьцуулахад өөр байх болно. Хэрэв та тодорхой кодчилол дахь текстийн хэшийг тооцоолох шаардлагатай бол оронд нь файл байршуулах хэрэгтэй.



CRC-32B Хэш Алгоритмын Тухай

Би математикийн мэргэжилтэн биш ч энэ хэш функцийг энгийн аналогитойгоор тайлбарлахаар оролдоно. Олон криптографийн хэш функцуудаас ялгаатай нь энэ нь онцгой хэцүү алгоритм биш тул магадгүй энэ нь асуудалгүй байх болно ;-)

Та захиа илгээж байгаа гэж төсөөдөж үзээрэй, гэхдээ тэр захиа хүлээн авагчид хүрэхээс өмнө гэмтэх вий гэж санаа зовж байна. Захианы агуулгаас үндэслэн та CRC-32 хяналтын сум (checksum) тооцоолж, түүнийг илгээмжийн уутан дээр бичдэг. Хүлээн авагч захиаг хүлээн авмагц, тэрээр мөн хяналтын сумыг тооцоолж, таны бичсэнтэй тохирч буй эсэхийг шалгаж чадна. Хэрвээ тохирох бол, захиа замдаа гэмтээгүй эсвэл өөрчлөгдөөгүй байсан гэсэн үг юм.

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 програмтай нийцэх шаардлагатай бол ашиглах хэрэгтэй.

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

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

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

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

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