ההבדל בין קידוד לפענוח

אישה מאזינה למוזיקה בטלפון נייד

קובצי מוזיקה מקודד בדרך כלל באמצעות ה-Codec MP3.

קרדיט תמונה: Purestock/Purestock/Getty Images

קידוד הוא תהליך של תרגום נתונים בין שני פורמטים לפי מערכת כללים או נוסחה. לדוגמה, אתה יכול לקודד "abc" ל-"ABC" באמצעות חוקים קטנים לאותיות גדולות. פענוח הוא תהליך הפוך. אתה יכול לפענח "ABC" ל-"abc" באמצעות אותה מערכת כללים. ישנם יישומים רבים ושונים עבור קידוד ופענוח נתונים. הצפנה, למשל, היא צורת קידוד המשתמשת במפתח. ללא המפתח, לא ניתן לפענח את הנתונים המקודדים. נתוני וידאו מקודדים כדי להקטין אותם כך שניתן לצפות בזרמים של וידאו בהבחנה גבוהה דרך האינטרנט.

קידוד משמש בדרך כלל כדי להקטין את הגודל של נתוני אודיו ווידאו. תוכנית מפענח מקודד, הנקראת codec, מיישמת סדרה של אלגוריתמים מתמטיים המבטלים נתונים מיותרים. לדוגמה, נניח שקובץ הכיל את הנתונים "ABCDQABC." האלגוריתם של Codec #1 עשוי להיות להחליף "ABC" עם "Z." הקובץ שיתקבל יהיה "ZDQZ", שהוא קטן ב-50 אחוז מהמקור קוֹבֶץ. האלגוריתם של Codec #2 עשוי להחליף את "ABC?" עם "Y" ו-"?ABC" עם "X", איפה "?" מציין כל תו. הקובץ שיתקבל יהיה "YX", שהוא קטן ב-75 אחוז מהקובץ המקורי.

סרטון היום

פענוח משתמש באותו codec כדי לשחזר את הקובץ המקורי מקובץ מקודד. לדוגמה, החלת Codec #1 על "ZDQZ" בהיפוך מחליפה את "Z" ב-"ABC" כדי ליצור את הקובץ המקורי "ABCDQABC." Codec #1, שהיה קטן יותר ב-50 אחוז, נקרא Codec ללא הפסדים מכיוון שפענוח תמיד יוצר מחדש את המקור קוֹבֶץ. Codec #2 מפענח "YX" עם "ABC?? ABC," ואז מנסה לנחש מהן הדמויות החסרות. ה-Codec עשוי לנחש "DE", מה שמוביל ל-"ABCDEABC." Codec #2, שהיה קטן ב-75 אחוז, הוא א codec lossy, כי תהליך הפענוח עשוי ליצור קובץ שקרוב למקור, אבל לא זֵהֶה.

כתובות אתרים וקבוצות תווים

לא כל קידוד מייצר תוצאה קטנה יותר מהנתונים הלא מקודדים. לדוגמה, כתובת האתר "example.com/Secret of Life.html" אינה חוקית מכיוון שהיא מכילה רווחים. מתכנת אינטרנט מקודד את כתובת האתר, אשר מחליפה את כל הרווחים ב-"%20" ליצירה "example.com/Secret%20of%20Life.html." תהליך הפענוח מבצע את הפעולה ההפוכה ו מחליף את "%20" ברווח. באופן דומה, תוכנת מסד נתונים עשויה לקודד את כל הנתונים ב-Unicode, קבוצה ראשית של תווים ברוב השפות. כאשר משתמש מאחזר נתונים, התוכנית מפענחת את ה-Unicode כך שיתאים להגדרות השפה והמקלדת של המשתמש.

קידוד שלא ניתן לפענוח

חלק מהקידודים אינם מיועדים לפענוח. Hash הוא מחרוזת ארוכה של תווים אקראיים המשמשים עם אלגוריתם קידוד כדי לייצר תוצאה מוצפנת שלא ניתנת לפענוח, גם כאשר אתה מכיר את ה-hash. לדוגמה, סיסמת משתמש עשויה להיות מוצפנת ב-hash ומאוחסנת במסד נתונים. אם האקר מוצא את מסד הנתונים, הוא לא יכול לפענח סיסמאות כלשהן. כאשר משתמש מתחבר, המערכת מקודדת את הסיסמה שהמשתמש מזין עם ה-hash ומשווה את התוצאה לזו המאוחסנת במסד הנתונים. אם משתמש שכח את הסיסמה שלו, עליו לשנות אותה, כי המערכת לא יודעת את הסיסמה המקורית שלו, אלא רק את ערכה המוצפן.