Kodeerimise ja dekodeerimise erinevus

Naine kuulab mobiiltelefonist muusikat

Muusikafailid kodeeritakse tavaliselt MP3-koodekiga.

Pildi krediit: Purestock/Purestock/Getty Images

Kodeerimine on andmete tõlkimine kahe vormingu vahel vastavalt reeglistikule või valemile. Näiteks saate kodeerida "abc" täheks "ABC", kasutades väiketähtedest suurtähtedeni ülemineku reegleid. Dekodeerimine on pöördprotsess. Saate "ABC" dekodeerida "abc"-ks, kasutades samu reegleid. Andmete kodeerimiseks ja dekodeerimiseks on palju erinevaid rakendusi. Näiteks krüpteerimine on kodeeringu vorm, mis kasutab võtit. Ilma võtmeta ei saa kodeeritud andmeid dekodeerida. Videoandmed on kodeeritud, et muuta need väiksemaks, nii et kõrglahutusega videovooge saab Interneti kaudu vaadata.

Heli- ja videoandmete mahu vähendamiseks kasutatakse tavaliselt kodeerimist. Kodeerija-dekoodri programm, mida nimetatakse koodekiks, rakendab mitmeid matemaatilisi algoritme, mis kõrvaldavad üleliigsed andmed. Oletame näiteks, et fail sisaldab andmeid "ABCDQABC". Kodeki nr 1 algoritm võib olla asendatav "ABC" koos "Z." Saadud fail oleks "ZDQZ", mis on 50 protsenti väiksem kui originaal faili. Codec #2 algoritm võib asendada "ABC?" "Y"-ga ja "?ABC" tähega "X", kus "?" tähistab mis tahes tähemärki. Saadud fail oleks "YX", mis on 75 protsenti väiksem kui algne fail.

Päeva video

Dekodeerimine kasutab sama kodekit algse faili taastamiseks kodeeritud failist. Näiteks kodeki nr 1 rakendamine koodile "ZDQZ" tagurpidi asendab "Z" koodiga "ABC", et luua originaalfail "ABCDQABC". Kodekit nr 1, mis oli 50 protsenti väiksem, nimetatakse kadudeta kodekiks, kuna dekodeerimine loob alati originaali uuesti faili. Koodek nr 2 dekodeerib "YX" koos "ABC?? ABC" ja proovib seejärel arvata, millised on puuduvad tegelased. Koodek võib arvata "DE", mille tulemuseks on "ABCDEABC". Koodek nr 2, mis oli 75 protsenti väiksem, on a kadudega koodek, sest dekodeerimisprotsess võib luua faili, mis on originaalile lähedane, kuid mitte identsed.

URL-id ja märgikomplektid

Mitte kõik kodeeringud ei anna kodeerimata andmetest väiksemat tulemust. Näiteks URL "example.com/Secret of Life.html" on kehtetu, kuna see sisaldab tühikuid. Veebiprogrammeerija kodeerib URL-i, mis loomiseks asendab kõik tühikud "%20"-ga "example.com/Secret%20of%20Life.html." Dekodeerimisprotsess sooritab pöördoperatsiooni ja asendab "%20" tühikuga. Samamoodi võib andmebaasiprogramm kodeerida kõik andmed Unicode'is, mis on enamiku keelte põhimärgikomplekt. Kui kasutaja hangib andmeid, dekodeerib programm Unicode'i, et see vastaks kasutaja keele- ja klaviatuuriseadetele.

Kodeerimine, mida ei saa dekodeerida

Mõned kodeeringud ei ole mõeldud dekodeerimiseks. Räsi on pikk juhuslike märkide jada, mida kasutatakse koos kodeerimisalgoritmiga, et saada krüptitud tulemus, mida ei saa dekodeerida isegi siis, kui teate räsi. Näiteks võib kasutaja parool olla krüptitud räsi abil ja salvestatud andmebaasi. Kui häkker leiab andmebaasi, ei saa ta ühtegi parooli dekodeerida. Kui kasutaja logib sisse, kodeerib süsteem kasutaja sisestatud parooli räsi abil ja võrdleb tulemust andmebaasis salvestatuga. Kui kasutaja unustab parooli, peab ta selle muutma, sest süsteem ei tea tema algset parooli, vaid ainult selle krüpteeritud väärtust.