Hakerzy często pobierają oprogramowanie — zarówno offline, jak i online — zmieniają i zmieniają kod, aby uczynić je szkodliwym, a następnie przesyłają je online, aby użytkownicy mogli pobrać bezpłatny program i zawarty w nim złośliwy kod. Aby upewnić się, że użytkownicy nie napotkają tego problemu, używane jest podpisywanie kodu. Podpisywanie kodu to metoda, za pomocą której oryginalny programista lub firma, która stworzyła program, podpisuje program, a po zainstalowaniu programu jest uwierzytelniany, aby upewnić się, że program nie został dodany ani zmieniony. Nie wymaga to żadnego specjalnego oprogramowania po stronie użytkownika, a użytkownik jest w stanie zweryfikować tożsamość programisty. Chociaż jest to przeznaczone jako forma bezpieczeństwa, haker, który tworzy program lub znajduje się w pobliżu podpisu, może stworzyć sztuczne i niewłaściwie ulokowane zaufanie.
Programy są stale sprzedawane zarówno online, jak i offline. Kiedy ktoś kupuje program w trybie offline od zaufanego dostawcy lub sprzedawcy, użytkownik ma bardzo mało powodów do obaw, że hakerzy wstrzykną do programu złośliwy kod. Dzieje się tak dlatego, że o ile twórca oprogramowania celowo nie stworzył niebezpiecznego programu, nie ma możliwości, aby ktoś manipulował oprogramowaniem i uczynił go złośliwym. Gdy użytkownik pobiera program z Internetu, nie ma takiej gwarancji.
Aby chronić użytkowników, którzy kupują lub pobierają programy online, zaimplementowano podpisywanie kodu. Podpisywanie kodu jest podzielone na dwie części: programistę i użytkownika końcowego. Deweloper używa skrótu kryptograficznego, jednokierunkowej operacji, która maskuje kod programu, a następnie łączy swój klucz prywatny z hashem. Tworzy to podpis, który jest wszczepiany do programu.
Gdy użytkownik otrzymuje program, następuje druga część procesu podpisywania kodu. Program bada certyfikat i klucz publiczny, które programista umieścił w programie. Korzystając z klucza publicznego, program może uruchomić ten sam skrót na bieżącym oprogramowaniu, a następnie porównuje oryginał z aktualnie instalowaną wersją. Jeśli zarówno zainstalowany program, jak i oryginalna synchronizacja zostaną wykonane, pokazuje to użytkownikowi, że nic nie zostało zmienione. Ten proces odbywa się automatycznie, a programy potrzebne do tego uwierzytelnienia powinny być wstępnie zainstalowane w systemie operacyjnym (OS) komputera.
Chociaż podpisywanie kodu jest potężną metodą zapewniania bezpieczeństwa, ma wady. Jeśli użytkownik pobiera program od hakera, uwierzytelnianie pokaże, że oryginalny program jest nienaruszony. Prowadziłoby to użytkownika do fałszywego poczucia bezpieczeństwa; program jest złośliwy, więc bezpieczeństwo nie jest osiągane w tym sensie. Zaawansowani hakerzy mogą również obejść ten skrót, aby wstrzyknąć kod, czyniąc podpisywanie kodu bezużytecznym.