Файлын Hash болон Checksum-ийн үүрэг, ач холбогдол
Дижитал өгөгдлийг дамжуулах, татаж авах явцад файлын бүрэн бүтэн байдлыг хангах нь нэн чухал байдаг. Файлын hash буюу криптограф hash нь дурын хэмжээтэй өгөгдлийг тогтмол урттай тэмдэгтүүдийн цуваа болгон хувиргадаг нэг чиглэлт функц юм. Энэхүү утга нь тухайн файлын дижитал хурууны хээ болж өгдөг бөгөөд файлын доторх өчүүхэн төдий өөрчлөлт, ганц бит өгөгдөл солигдоход л огт өөр hash утга үүсдэг онцлогтой.
Файлын hash-ийг тооцоолсноор өгөгдөл дамжуулах явцад гарсан санамсаргүй алдаа болон зориудаар хийсэн өөрчлөлтийг шууд илрүүлэх боломжтой болдог. Програм хангамж хөгжүүлэгчид өөрсдийн бүтээсэн файлаа нийтлэхдээ түүний хяналтын нийлбэрийг (checksum) хамт байршуулдаг бөгөөд хэрэглэгчид татаж авсан файлаа тухайн хяналтын нийлбэртэй тулгаснаар файлын бүрэн бүтэн байдлыг баталгаажуулдаг.
Дэмжигдэх алгоритмууд ба тэдгээрийн ялгаа
Энэхүү тооцоолуур нь файлыг нэг удаа унших явцдаа дараах дөрвөн өөр алгоритмыг зэрэг ашиглан hash утгуудыг тооцоолно:
- MD5: файлын MD5 hash. Санамсаргүй эвдрэлийг илрүүлэхэд тохиромжтой ч санаатай өөрчлөлтөөс хамгаалахгүй.
- SHA-1: файлын SHA-1 hash. Энэ нь бас санамсаргүй эвдрэлд зориулагдсан бөгөөд санаатай өөрчлөлтөөс хамгаалахгүй.
- SHA-256: файлын SHA-256 hash.
- SHA-512: файлын SHA-512 hash.
Эдгээр алгоритмуудыг зориулалтаар нь дараах байдлаар ангилан авч үздэг:
| Алгоритм | Зориулалт ба шинж чанар |
|---|---|
| MD5 | Санамсаргүй алдаа, өгөгдлийн эвдрэлийг илрүүлэхэд тохиромжтой боловч хорлонтой өөрчлөлтөөс хамгаалах аюулгүй байдлын шаардлагад нийцэхгүй. |
| SHA-1 | Өгөгдлийн санамсаргүй гэмтлийг шалгахад ашиглах боломжтой, аюулгүй байдлын хувьд сул талтай. |
| SHA-256 | Хяналтын нийлбэр нь зориудаар хийх өөрчлөлт, хөндлөнгийн оролцооноос хамгаалагдсан байх шаардлагатай аюулгүй байдлын үед илүүд үзнэ. |
| SHA-512 | Өндөр түвшний хамгаалалт шаардлагатай, хорлонтой өөрчлөлтөөс сэргийлэх аюулгүй байдлын зориулалтаар ашиглахад тохиромжтой. |
Хяналтын нийлбэрийг (Checksum) баталгаажуулах дүрэм
Тооцоолуурт хяналтын нийлбэрийг хуулж тавих үед систем дараах дүрмийн дагуу ажиллана:
- Тэмдэгт илрүүлэх: Хэрэглэгч баталгаажуулах талбарт хяналтын нийлбэрийг оруулахад систем тэндээс хамгийн урт арван зургаатын (hexadecimal) тэмдэгтүүдийн цувааг ялган авдаг. Энэ нь
coreutils,BSDэсвэлsha256:<hash>зэрэг төрөл бүрийн форматаар бичигдсэн текстийн хэв маягаас зөвхөн hash утгыг салгаж авах боломжийг олгодог. - Тохироо шалгах: Оруулсан хяналтын нийлбэр нь тооцоолсон hash утгуудын аль нэгтэй тохирвол тухайн алгоритмын мөр ногоон өнгөтэй болж хувирна. Хэрэв ямар ч мөр ногоон болохгүй бол файл нь нийтлэгдсэн эх хувилбартайгаа тохирохгүй байгааг илтгэнэ.
- Үсгийн хэмжээ харгалзахгүй байх: Хяналтын нийлбэрийг харьцуулахдаа том, жижиг үсгийг ялгахгүй бөгөөд бүх тэмдэгтийг жижиг үсэгт шилжүүлэн тулгадаг.
Хөтөч дээр боловсруулах ба нууцлал
Энэхүү хэрэгсэл нь таны файлуудыг BroBroGo сервер рүү хуулж илгээдэггүй. Файлыг унших болон hash тооцоолох бүх процесс бүхэлдээ таны вэб хөтөч дотор локал байдлаар явагддаг.
Олон гигабайт хэмжээтэй том файлуудыг ч хэсэг хэсгээр нь урсгал (stream) хэлбэрээр дамжуулж уншдаг тул файлын аль ч хэсэг таны төхөөрөмжөөс гадагш дамждаггүй. Тооцоолох явцад ойролцоогоор 4 MB тутамд явцын мэдээллийг шинэчлэн харуулдаг.
Хэрэглээний заавар ба алдааны мэдэгдлүүд
Тооцоолуур нь нэг удаад 20 хүртэлх файлыг зэрэг хүлээн авч боловсруулах чадвартай. Хэрэв олон файл оруулсан үед аль нэг файлыг уншихад алдаа гарвал тухайн файлыг алгасаж, бусад файлуудыг үргжлүүлэн боловсруулна.
Ажиллах явцад дараах төлөв болон алдааны мэдэгдлүүд хэрэглэгчдэд харагдана:
- Бэлэн байдал: Анхны төлөвт "Бэлэн. Hash-ийг тооцоолохын тулд файл чирж тавина уу." гэсэн бичиг харагдана.
- Явцын мэдээлэл: Файлыг унших явцад "
{file}файлыг тооцоолж байна ({done}/{total}) —{percent}%" хэлбэрээр явцыг хувиар харуулна. - Амжилттай дуусах: Тооцоолж дуусахад "
{count}файлын hash-ийг тооцоолов." гэсэн мэдэгдэл гарна. - Файлын алдаа: Тодорхой нэг файлыг уншиж чадаагүй тохиолдолд "Энэ файлыг уншиж чадсангүй." гэж заах бөгөөд нийт алдсан файлын тоог "
{count}файлыг уншиж чадсангүй." гэж харуулна. - Ерөнхий алдаа: Тооцоолол бүхэлдээ бүтэлгүйтвэл "Hash тооцоолоход алдаа гарлаа. Дахин оролдоно уу." гэсэн алдаа заана.
- Тулгалтын үр дүн: Хяналтын нийлбэр тохирвол "Тохирлоо:
{file}({algo})" гэж харагдах бөгөөд тохирохгүй бол "Энэ хяналтын нийлбэртэй тохирох файл олдсонгүй." гэж мэдэгдэнэ. - Цэвэрлэх: Үр дүнг арилгасны дараа "Арилгасан." төлөв шилжинэ.
Түгээмэл асуултууд
Татаж авсан файлыг хяналтын нийлбэрээр (checksum) хэрхэн баталгаажуулах вэ?
Татаж авсан файлаа чирж оруулаад, эх сурвалжаас нийтэлсэн хяналтын нийлбэрийг (checksum) баталгаажуулах талбарт хуулж тавина уу. Тохирч буй алгоритмын мөр ногоон өнгөтэй болно. Хэрэв юу ч ногоон болохгүй бол файл нь нийтлэгдсэн хувилбартай тохирохгүй байна гэсэн үг — үүнийг гэмтсэн эсвэл өөрчлөгдсөн гэж үзнэ үү.
Энэ нь ямар алгоритмуудыг тооцоолдог вэ, алийг нь ашиглах ёстой вэ?
Энэ нь файлыг нэг удаа уншихдаа MD5, SHA-1, SHA-256, болон SHA-512 утгуудыг хамтад нь тооцоолдог. MD5 болон SHA-1 нь санамсаргүй алдааг илрүүлэхэд тохиромжтой боловч аюулгүй байдлын хувьд найдвартай биш — хяналтын нийлбэр (checksum) нь өөрчлөлтөөс хамгаалагдсан байх шаардлагатай бол SHA-256 эсвэл SHA-512-ийг илүүд үзээрэй.
Миний файлууд хаа нэгтээ хуулагдах уу?
Үгүй. Файлуудыг локал байдлаар уншиж, hash-ийг тооцоолдог — олон гигабайт хэмжээтэй том файлуудыг ч хэсэг хэсгээр нь уншдаг тул таны төхөөрөмжөөс гадагш юу ч илгээгдэхгүй.