Skillnaden mellan kodning och avkodning

Kvinna som lyssnar på musik på en mobiltelefon

Musikfiler kodas vanligtvis med MP3-codec.

Bildkredit: Purestock/Purestock/Getty Images

Kodning är processen att översätta data mellan två format enligt en uppsättning regler eller en formel. Du kan till exempel koda "abc" till "ABC" genom att använda regler för gemener till versaler. Avkodning är den omvända processen. Du kan avkoda "ABC" till "abc" med samma uppsättning regler. Det finns många olika applikationer för datakodning och avkodning. Kryptering är till exempel en form av kodning som använder en nyckel. Utan nyckeln kan den kodade datan inte avkodas. Videodata kodas för att göra den mindre så att högupplösta videoströmmar kan ses över Internet.

Kodning används vanligtvis för att minska storleken på ljud- och videodata. Ett kodar-avkodarprogram, kallat en codec, tillämpar en serie matematiska algoritmer som eliminerar redundant data. Anta till exempel att en fil innehöll data "ABCDQABC." Codec #1:s algoritm kan vara att ersätta "ABC" med "Z." Den resulterande filen skulle vara "ZDQZ", vilket är 50 procent mindre än originalet fil. Codec #2:s algoritm kan ersätta "ABC?" med "Y" och "?ABC" med "X", där "?" indikerar vilket tecken som helst. Den resulterande filen skulle vara "YX", vilket är 75 procent mindre än originalfilen.

Dagens video

Avkodning använder samma codec för att rekonstruera originalfilen från en kodad fil. Till exempel, om du tillämpar Codec #1 på "ZDQZ" omvänt ersätts "Z" med "ABC" för att skapa originalfilen "ABCDQABC." Codec #1, som var 50 procent mindre, kallas en förlustfri codec eftersom avkodning alltid återskapar originalet fil. Codec #2 avkodar "YX" med "ABC?? ABC" och försöker sedan gissa vad de saknade karaktärerna är. Codec kan gissa "DE", vilket resulterar i "ABCDEABC." Codec #2, som var 75 procent mindre, är en förlust av codec, eftersom avkodningsprocessen kan skapa en fil som är nära originalet, men inte identisk.

URL: er och teckenuppsättningar

All kodning ger inte ett resultat som är mindre än den okodade datan. Till exempel är webbadressen "example.com/Secret of Life.html" ogiltig eftersom den innehåller mellanslag. En webbprogrammerare kodar URL: en, som ersätter alla mellanslag med "%20" för att skapa "example.com/Secret%20of%20Life.html." Avkodningsprocessen utför den omvända operationen och ersätter "%20" med ett mellanslag. På samma sätt kan ett databasprogram koda all data i Unicode, en huvuduppsättning tecken på de flesta språk. När en användare hämtar data avkodar programmet Unicode för att matcha användarens språk- och tangentbordsinställningar.

Kodning som inte kan avkodas

Vissa kodningar är inte avsedda att avkodas. En hash är en lång rad slumpmässiga tecken som används med en kodningsalgoritm för att producera ett krypterat resultat som inte kan avkodas, även när du känner till hashen. Till exempel kan en användares lösenord krypteras med en hash och lagras i en databas. Om en hacker hittar databasen kan han inte avkoda några lösenord. När en användare loggar in kodar systemet lösenordet som användaren anger med hashen och jämför resultatet med det som lagras i databasen. Om en användare glömmer sitt lösenord måste han ändra det, eftersom systemet inte känner till hans ursprungliga lösenord, bara dess krypterade värde.