Kodning er processen med at oversætte data mellem to formater i henhold til et sæt regler eller en formel. For eksempel kan du kode "abc" til "ABC" ved hjælp af små bogstaver til regler. Afkodning er den inverse proces. Du kan afkode "ABC" til "abc" vha. Det samme sæt regler. Der er mange forskellige applikationer til datakodning og dekodning. Kryptering er for eksempel en form for kodning, der bruger en nøgle. Uden nøglen kan de kodede data ikke dekodes. Videodata er kodet for at gøre dem mindre, så high-definition strømme af video kan ses over internettet.

Kvinde, der lytter til musik på en mobiltelefon

Mediekodning

Kodning bruges ofte til at reducere størrelsen på lyd- og videodata. Et koder-dekoderprogram, kaldet en codec, anvender en række matematiske algoritmer, der eliminerer overflødige data. Antag f.eks., At en fil indeholdt dataene "ABCDQABC." Codec # 1's algoritme kan være at erstatte "ABC" med "Z." Den resulterende fil ville være "ZDQZ," som er 50 procent mindre end den originale fil. Codec # 2's algoritme erstatter muligvis "ABC?" med "Y" og "? ABC" med "X," hvor "?" angiver ethvert tegn. Den resulterende fil ville være "YX", som er 75 procent mindre end den originale fil.

Mediekodning

Afkodning bruger den samme codec til at rekonstruere den originale fil fra en kodet fil. F.eks. Erstatter "Z" med "ABC" for at oprette den originale fil "ABCDQABC", anvender Codec # 1 på "ZDQZ" i omvendt. Codec nr. 1, der var 50 procent mindre, kaldes en tabsfri codec, fordi dekodning altid genskaber den originale fil. Codec # 2 afkoder "YX" med "ABC ?? ABC", og prøver derefter at gætte, hvad de manglende tegn er. Codeken gætter måske "DE", hvilket resulterer i "ABCDEABC." Codec # 2, som var 75 procent mindre, er en tabsgivende codec, fordi afkodningsprocessen muligvis skaber en fil, der er tæt på originalen, men ikke identisk.

URL'er og tegnsæt

Ikke al kodning producerer et resultat, der er mindre end de ikke-kodede data. For eksempel er URL-adressen "eksempel.com/Secret of Life.html" ugyldig, fordi den indeholder mellemrum. En webprogrammerer koder URL'en, som erstatter alle mellemrum med "% 20" for at oprette "eksempel.com/Secret%20of%20Life.html." Afkodningsprocessen udfører den inverse operation og erstatter "% 20" med et mellemrum. Tilsvarende koder et databaseprogram muligvis alle data i Unicode, et mastersæt med tegn på de fleste sprog. Når en bruger henter data, afkoder programmet Unicode for at matche brugerens sprog- og tastaturindstillinger.

Kodning, der ikke kan dekodes

Nogle kodinger er ikke beregnet til at blive dekodet. En hash er en lang streng med tilfældige tegn, der bruges med en kodningsalgoritme til at producere et krypteret resultat, der ikke kan dekodes, selv når du kender hash. For eksempel kan en brugers adgangskode muligvis krypteres med en hash og gemmes i en database. Hvis en hacker finder databasen, kan han ikke afkode nogen adgangskoder. Når en bruger logger ind, koder systemet kodeordet, som brugeren indtaster med hasjen, og sammenligner resultatet med det, der er gemt i databasen. Hvis en bruger glemmer sin adgangskode, skal han ændre den, fordi systemet ikke kender hans originale adgangskode, kun dets krypterede værdi.