Какво е контролна сума (и защо трябва да ви е грижа)?

Контролната сума е поредица от цифри и букви, използвани за проверка на данните за грешки. Ако знаете контролната сума на оригинален файл, можете да използвате помощната програма за контролна сума, за да потвърдите, че вашето копие е идентично.

Обяснени контролни суми

За да създадете контролна сума, стартирате програма, която поставя този файл чрез алгоритъм. Типичните алгоритми, използвани за това, включват MD5, SHA-1, SHA-256 и SHA-512.

Алгоритъмът използва криптографска хеш функция, която взема вход и създава низ (последователност от цифри и букви) с фиксирана дължина. Входният файл може да бъде малък 1 MB файл или масивен 4 GB файл, но така или иначе ще получите контролна сума със същата дължина. Контролните суми също могат да бъдат наречени „хешове“.

Малките промени във файла водят до много различни изглеждащи контролни суми. Например създадохме два различни текстови файла, които са почти еднакви, но единият има удивителен знак, където другият има точка. След като стартирахме вградената помощна програма за контролно сумиране на Windows 10, видяхме много различни контролни суми. Една символна разлика в основния файл създава съвсем различна изглеждаща контролна сума.

Когато контролните суми са полезни

Можете да използвате контролни суми за проверка на файлове и други данни за грешки, които възникват по време на предаване или съхранение. Например файл може да не е изтеглен правилно поради проблеми с мрежата или проблемите с твърдия диск може да са причинили повреда във файл на диск.

Ако знаете контролната сума на оригиналния файл, можете да стартирате контролна сума или помощна програма за хеширане върху него. Ако получената контролна сума съвпада, знаете, че файлът, който имате, е идентичен.

Компютрите използват техники в стил контролна сума, за да проверяват данните за проблеми във фонов режим, но можете също да направите това сами. Например дистрибуциите на Linux често предоставят контролни суми, за да можете да проверите правилно изтегления Linux ISO, преди да го запишете на диск или да го поставите на USB устройство. Можете също така да използвате контролни суми, за да проверите целостта на всеки друг тип файл, от приложения до документи и носители. Просто трябва да знаете контролната сума на оригиналния файл.

Каква е разликата между сумите MD5, SHA-1 и SHA-256?

Контролните суми са полезен начин да се гарантира, че файлът няма грешка. Ако възникне случайна грешка поради проблеми с изтеглянето или проблеми с твърдия диск, получената контролна сума ще бъде различна, дори ако това е само малка грешка.

Тези криптографски хеш функции обаче не са перфектни. Изследователите по сигурността са открили „сблъсъци“ с функциите MD5 и SHA-1. С други думи, те са намерили два различни файла, които произвеждат един и същ хеш MD5 или SHA-1, но са различни.

Това е малко вероятно да се случи случайно, но нападателят може да използва тази техника, за да прикрие злонамерен файл като легитимен файл. Ето защо не трябва да разчитате на суми MD5 или SHA-1, за да проверите дали даден файл е автентичен - само за да проверите за повреда.

Все още няма съобщения за сблъсък на SHA-256, поради което приложенията сега създават суми SHA-256 вместо суми MD5 и суми SHA-1. SHA-256 е по-силен и по-сигурен алгоритъм.

Различните алгоритми за контролна сума дават различни резултати. Файлът ще има различни контролни суми MD5, SHA-1 и SHA – 256. Ако знаете само MD5 сумата на оригинален файл, трябва да изчислите MD5 сумата на вашето копие, за да проверите дали тя съвпада.

СВЪРЗАНИ: Какво е SHAttered? SHA-1 Атаки на сблъсък, Обяснено

Как се изчисляват контролни суми

Ако знаете контролната сума на оригинален файл и искате да го проверите на вашия компютър, можете да го направите лесно. Windows, macOS и Linux имат вградени помощни програми за генериране на контролни суми. Не се нуждаете от помощни програми на трети страни.

СВЪРЗАНИ: Какво представляват хешовете MD5, SHA-1 и SHA-256 и как да ги проверя?

В Windows Get-FileHashкомандата PowerShell изчислява контролната сума на файл. За да го използвате, първо отворете PowerShell. В Windows 10 щракнете с десния бутон върху бутона Старт и изберете „Windows PowerShell“. Можете също да го стартирате, като потърсите менюто „Старт“ за „PowerShell“ и щракнете върху прекия път „Windows PowerShell“.

Актуализация: Get-FileHash е включен в Windows 10. Но в Windows 7 ще трябва да инсталирате актуализацията PowerShell 4.0, за да я получите.

На подкана напишете Get-FileHashи след това натиснете интервала.

Въведете пътя на файла, за който искате да изчислите контролната сума. Или, за да улесните нещата, плъзнете и пуснете файла от прозореца на File Explorer в прозореца на PowerShell, за да попълните автоматично пътя му.

Натиснете Enter, за да стартирате командата и ще видите хеша SHA-256 за файла. В зависимост от размера на файла и скоростта на съхранението на вашия компютър, процесът може да отнеме няколко секунди.

Ако имате нужда от друг тип контролна сума, добавете подходящата -Algorithmопция в края на командата, така:

Get-FileHash C: \ path \ to \ file.iso -Algorithm MD5
Get-FileHash C: \ path \ to \ file.iso -Алгоритъм SHA1

Сравнете изчислената контролна сума с първоначалната. Не трябва да гледате твърде близо, тъй като ще има огромна разлика в контролната сума, дори ако има само малка разлика в основния файл.

Ако контролната сума съвпада, файловете са идентични. Ако не, има проблем - може би файлът е повреден или просто сравнявате два различни файла. Ако сте изтеглили копие на файла и контролната му сума не съвпада с очакваното, опитайте да изтеглите файла отново.