Διαφορά μεταξύ κωδικοποίησης και αποκωδικοποίησης

Γυναίκα που ακούει μουσική σε ένα κινητό τηλέφωνο

Τα αρχεία μουσικής συνήθως κωδικοποιούνται χρησιμοποιώντας τον κωδικοποιητή MP3.

Πίστωση εικόνας: Purestock/Purestock/Getty Images

Η κωδικοποίηση είναι η διαδικασία μετάφρασης δεδομένων μεταξύ δύο μορφών σύμφωνα με ένα σύνολο κανόνων ή έναν τύπο. Για παράδειγμα, μπορείτε να κωδικοποιήσετε το "abc" σε "ABC" χρησιμοποιώντας κανόνες από πεζά σε κεφαλαία. Η αποκωδικοποίηση είναι η αντίστροφη διαδικασία. Μπορείτε να αποκωδικοποιήσετε το "ABC" σε "abc" χρησιμοποιώντας το ίδιο σύνολο κανόνων. Υπάρχουν πολλές διαφορετικές εφαρμογές για κωδικοποίηση και αποκωδικοποίηση δεδομένων. Η κρυπτογράφηση, για παράδειγμα, είναι μια μορφή κωδικοποίησης που χρησιμοποιεί ένα κλειδί. Χωρίς το κλειδί, τα κωδικοποιημένα δεδομένα δεν μπορούν να αποκωδικοποιηθούν. Τα δεδομένα βίντεο κωδικοποιούνται για να γίνουν μικρότερα, ώστε να μπορούν να προβληθούν ροές βίντεο υψηλής ευκρίνειας μέσω του Διαδικτύου.

Η κωδικοποίηση χρησιμοποιείται συνήθως για τη μείωση του μεγέθους των δεδομένων ήχου και βίντεο. Ένα πρόγραμμα κωδικοποιητή-αποκωδικοποιητή, που ονομάζεται κωδικοποιητής, εφαρμόζει μια σειρά μαθηματικών αλγορίθμων που εξαλείφουν τα περιττά δεδομένα. Για παράδειγμα, ας υποθέσουμε ότι ένα αρχείο περιείχε τα δεδομένα "ABCDQABC". Ο αλγόριθμος του Codec #1 μπορεί να είναι να αντικατασταθεί "ABC" με "Z." Το αρχείο που θα προκύψει θα είναι "ZDQZ", το οποίο είναι 50 τοις εκατό μικρότερο από το αρχικό αρχείο. Ο αλγόριθμος του Codec #2 μπορεί να αντικαταστήσει το "ABC?" με "Y" και "?ABC" με "X," όπου "?" υποδηλώνει οποιοδήποτε χαρακτήρα. Το αρχείο που προκύπτει θα είναι "YX", το οποίο είναι 75 τοις εκατό μικρότερο από το αρχικό αρχείο.

Το βίντεο της ημέρας

Η αποκωδικοποίηση χρησιμοποιεί τον ίδιο κωδικοποιητή για την ανακατασκευή του αρχικού αρχείου από ένα κωδικοποιημένο αρχείο. Για παράδειγμα, η εφαρμογή του Codec #1 στο "ZDQZ" αντίστροφα αντικαθιστά το "Z" με το "ABC" για τη δημιουργία του αρχικού αρχείου "ABCDQABC". Ο κωδικοποιητής #1, ο οποίος ήταν 50 τοις εκατό μικρότερος, ονομάζεται κωδικοποιητής χωρίς απώλειες επειδή η αποκωδικοποίηση αναδημιουργεί πάντα το πρωτότυπο αρχείο. Ο κωδικοποιητής #2 αποκωδικοποιεί το "YX" με "ABC?? ABC" και μετά προσπαθεί να μαντέψει ποιοι είναι οι χαρακτήρες που λείπουν. Ο κωδικοποιητής μπορεί να μαντέψει "DE", που καταλήγει σε "ABCDEABC". Ο Codec #2, ο οποίος ήταν 75 τοις εκατό μικρότερος, είναι α Απωλεστικός κωδικοποιητής, επειδή η διαδικασία αποκωδικοποίησης μπορεί να δημιουργήσει ένα αρχείο που να είναι κοντά στο πρωτότυπο, αλλά όχι πανομοιότυπο.

URL και σύνολα χαρακτήρων

Δεν παράγουν όλες οι κωδικοποιήσεις ένα αποτέλεσμα μικρότερο από τα μη κωδικοποιημένα δεδομένα. Για παράδειγμα, η διεύθυνση URL "example.com/Secret of Life.html" δεν είναι έγκυρη επειδή περιέχει κενά. Ένας προγραμματιστής Ιστού κωδικοποιεί τη διεύθυνση URL, η οποία αντικαθιστά όλα τα κενά με το "%20" για δημιουργία "example.com/Secret%20of%20Life.html." Η διαδικασία αποκωδικοποίησης εκτελεί την αντίστροφη λειτουργία και αντικαθιστά το "%20" με ένα κενό. Ομοίως, ένα πρόγραμμα βάσης δεδομένων μπορεί να κωδικοποιεί όλα τα δεδομένα στο Unicode, ένα κύριο σύνολο χαρακτήρων στις περισσότερες γλώσσες. Όταν ένας χρήστης ανακτά δεδομένα, το πρόγραμμα αποκωδικοποιεί το Unicode ώστε να ταιριάζει με τις ρυθμίσεις γλώσσας και πληκτρολογίου του χρήστη.

Κωδικοποίηση που δεν μπορεί να αποκωδικοποιηθεί

Ορισμένες κωδικοποιήσεις δεν προορίζονται για αποκωδικοποίηση. Ο κατακερματισμός είναι μια μεγάλη σειρά τυχαίων χαρακτήρων που χρησιμοποιούνται με έναν αλγόριθμο κωδικοποίησης για την παραγωγή ενός κρυπτογραφημένου αποτελέσματος που δεν μπορεί να αποκωδικοποιηθεί, ακόμη και όταν γνωρίζετε τον κατακερματισμό. Για παράδειγμα, ο κωδικός πρόσβασης ενός χρήστη μπορεί να είναι κρυπτογραφημένος με κατακερματισμό και να αποθηκευτεί σε μια βάση δεδομένων. Εάν ένας χάκερ βρει τη βάση δεδομένων, δεν μπορεί να αποκωδικοποιήσει κανέναν κωδικό πρόσβασης. Όταν ένας χρήστης συνδέεται, το σύστημα κωδικοποιεί τον κωδικό πρόσβασης που εισάγει ο χρήστης με τον κατακερματισμό και συγκρίνει το αποτέλεσμα με αυτό που είναι αποθηκευμένο στη βάση δεδομένων. Εάν ένας χρήστης ξεχάσει τον κωδικό πρόσβασής του, πρέπει να τον αλλάξει, γιατί το σύστημα δεν γνωρίζει τον αρχικό του κωδικό πρόσβασης, παρά μόνο την κρυπτογραφημένη τιμή του.