Razlika između kodiranja i dekodiranja
Kodiranje je proces prevođenja podataka između dva formata u skladu sa skupom pravila ili formule. Na primjer, možete kodirati "abc" u "ABC" koristeći pravila pretvaranja malih u velika slova. Dekodiranje je inverzni proces. Možete dekodirati "ABC" u "abc" pomoću istog skupa pravila. Postoji mnogo različitih aplikacija za kodiranje i dekodiranje podataka. Enkripcija je, na primjer, oblik kodiranja koji koristi ključ. Bez ključa, kodirani podaci ne mogu se dekodirati. Videopodaci su kodirani kako bi bili manji kako bi se video zapisi visoke razlučivosti mogli gledati putem interneta.
Kodiranje medija
Kodiranje se obično koristi za smanjenje veličine audio i video podataka. Program koder-dekoder, nazvan kodek, primjenjuje niz matematičkih algoritama koji eliminiraju suvišne podatke. Na primjer, pretpostavimo da datoteka sadrži podatke "ABCDQABC." Algoritam kodeka br. 1 mogao bi biti zamjena "ABC" sa "Z." Rezultirajuća datoteka bila bi "ZDQZ", što je 50 posto manje od izvorne datoteke. Algoritam kodeka #2 bi mogao zamijeniti "ABC?" s "Y" i "?ABC" s "X," gdje je "?" označava bilo koji znak. Rezultirajuća datoteka bila bi "YX", što je 75 posto manje od izvorne datoteke.
Dekodiranje medija
Dekodiranje koristi isti kodek za rekonstrukciju izvorne datoteke iz kodirane datoteke. Na primjer, primjena kodeka #1 na "ZDQZ" obrnutim redom zamjenjuje "Z" s "ABC" kako bi se stvorila izvorna datoteka "ABCDQABC". Kodek #1, koji je bio 50 posto manji, naziva se kodek bez gubitaka jer dekodiranje uvijek ponovno stvara izvornu datoteku. Kodek #2 dekodira "YX" s "ABC??ABC," a zatim pokušava pogoditi koji su znakovi koji nedostaju. Kodek bi mogao pogoditi "DE", što rezultira "ABCDEABC." Kodek #2, koji je bio 75 posto manji, kodek je s gubitkom, jer proces dekodiranja može stvoriti datoteku koja je bliska izvorniku, ali ne identična.
URL-ovi i skupovi znakova
Ne daje svako kodiranje rezultat koji je manji od nekodiranih podataka. Na primjer, URL "example.com/Tajna života.html" nije valjan jer sadrži razmake. Web programer kodira URL, koji zamjenjuje sve razmake s "%20" kako bi stvorio "example.com/Secret%20of%20Life.html." Proces dekodiranja izvodi inverznu operaciju i zamjenjuje "%20" razmakom. Slično tome, program baze podataka može kodirati sve podatke u Unicodeu, glavnom skupu znakova u većini jezika. Kada korisnik dohvati podatke, program dekodira Unicode kako bi odgovarao korisnikovim postavkama jezika i tipkovnice.
Kodiranje koje se ne može dekodirati
Neka kodiranja nisu namijenjena dekodiranju. Hash je dugačak niz nasumičnih znakova koji se koristi s algoritmom za kodiranje da bi se proizveo šifrirani rezultat koji se ne može dekodirati, čak i kada znate hash. Na primjer, korisnička lozinka može biti šifrirana hashom i pohranjena u bazi podataka. Ako haker pronađe bazu podataka, ne može dekodirati nijednu lozinku. Kada se korisnik prijavi, sustav kodira lozinku koju korisnik unese s hashom i uspoređuje rezultat s onim pohranjenim u bazi podataka. Ako korisnik zaboravi lozinku, mora je promijeniti, jer sustav ne zna njegovu izvornu lozinku, samo njenu šifriranu vrijednost.