Александър Иванов
Когато нещата не вървят
Какво е това MD5?
Контролна сума (англ. checksum или hash sum).
Съществуват редица алгоритми, които прилагат аритметични, логически и побитови операции върху поток от данни, за да изведат уникална числова стойност (контролна сума). Идеята е, ако се промени нещо в потока от данни и контролната сума да бъде друга.
Така контролната сума представлява много голямо цяло число. Ама информатиците го записват в шестнадесетичен запис на числа, тоест като поредица от арабски цифри и латинските букви от A до F. Хич не се опитвай да го разчетеш като число, гледай на него като на поредица от символи.
Така, ако изтеглиш файл по интернет и контролната сума не съвпада с тази, която е обявена за този файл, най-вероятно е станала грешка при изтеглянето на файла. Интернет осигурява много стабилна комуникация, ама грешки стават.
Ако пък файлът, който изтегляш, е изпълним (в Windows това са файловете с разширение .EXE), и контролната сума не ти излиза, опитай да го изтеглиш още веднъж, за да изключиш грешка при трансфера. Ако контролната сума ти е същата (значи изтеглянето е било правилно и в двата случая), ама пак не ти съвпада с обявената на страницата, най-вероятно в този файл е „вписан“ някакъв зловреден софтуер — вирус, червей, троянски кон и пр. (общото наименование на английски е malware, съкращение от malicious software). Такива неща стават.
Ако си много любознателен, можеш да тестваш този файл с антивирусния си софтуер с надежда да получиш повече информация. Ама това, което НЕ БИВА да правиш, е да го стартираш. Вместо това тук и на място го изтрий физически (с Shift+Del).
За такава проверка най-често се използва алгоритъмът MD5 (англ. Message Digest 5). Доказано е, че той не е сигурен за „чувствителна информация“, но за проверка на целостта на изтеглените файлове става. Когато се налага криптирана връзка — с електронен магазин, с банка, пък дори и с gmail, използват се по-сигурни алгоритми от семейството Secure Hash Algorithm (SHA-2, например).
Как се проверяват контролните суми?
В линукс си има конзолни програмки за това. Ако изтеглиш архивите във формат ZIP от glotta, изтегли и файла gtools.md5 — това е обикновен текстов файл, разгледай го. След това изпълни в конзолата:
$ md5sum -c gtools.md5
Ключето -c (от check) инструктира програмата да чете данните от файла gtools.md5 и да ги сверява с изчислената контролна сума.
Ако пък си изтеглил само общия архив gtools.zip, може да провериш само него:
$ md5sum gtools.zip
И свери резултата с вписания в gtools.md5.
Ако изтеглиш файл, за който контролната сума е изчислена по друг алгоритъм, например, SHA256, в линукс си има програмка sha256sum, която работи по същия начин. За всеки алгоритъм си има аналогична програмка.
В Windows май не са предвидени подобни програмки, ама има програми от типа freeware, които може да си изтеглиш. Ето първото, което ми показа google: CHK Checksum Utility. Изглежда добре, ама аз не съм го пробвал.