Какво е контролна сума (и защо трябва да се грижите)?
Контролната сума е поредица от числа и букви, използвани за проверка на данните за грешки. Ако знаете контролната сума на оригиналния файл, можете да използвате помощната програма за проверка, за да потвърдите, че копието ви е идентично.
Обяснени бележки
За да създадете контролна сума, стартирате програма, която поставя този файл чрез алгоритъм. Типични алгоритми, използвани за това, са 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 за копие, за да проверите дали е съвпадение.
Как да изчислим контролни суми
Ако знаете контролната сума на оригиналния файл и искате да го проверите на вашия компютър, можете да го направите лесно. Windows, macOS и Linux имат вградени помощни програми за генериране на контролни суми. Нямате нужда от помощни програми на трети страни.
В Windows, PowerShell Get-FileHash
Командата изчислява контролната сума на даден файл. За да го използвате, първо отворете PowerShell. В Windows 10 щракнете с десния бутон върху бутона "Старт" и изберете "Windows PowerShell". Можете също да го стартирате, като потърсите в менюто "Старт" за "PowerShell" и щракнете върху пряк път от "Windows PowerShell".
В командния ред въведете Get-FileHash
и след това натиснете клавиша за интервал.
Въведете пътя на файла, който искате да изчислите за контролната сума. Или, за да направите нещата по-лесни, плъзнете и пуснете файла от прозореца на File Explorer в прозореца на PowerShell, за да попълните автоматично неговия път.
Натиснете Enter, за да стартирате командата, и ще видите хеш SHA-256 за файла. В зависимост от размера на файла и скоростта на съхранение на компютъра, процесът може да отнеме няколко секунди.
Ако имате нужда от друг вид контролна сума, добавете подходящия -алгоритъм
опция до края на командата, като така:
Get-FileHash C: file.iso -Algorithm MD5
Get-FileHash C: file.iso -Algorithm SHA1
Сравнете изчислената контролна сума с оригиналната. Не трябва да изглеждате твърде близо, тъй като ще има огромна разлика в контролната сума, дори ако има само малка разлика в основния файл.
Ако контролната сума съвпада, файловете са идентични. Ако не, има проблем - може би файлът е повреден или просто сравнявате два различни файла. Ако сте изтеглили копие на файла и неговата контролна сума не съвпада с очакваното, опитайте да изтеглите файла отново.