קידוד Base64

עם הכלי Base64 Encoding, אתה יכול להצפין את הטקסט שאתה מזין בשיטת Base64. אם תרצה, תוכל לפענח את קוד Base64 המוצפן עם הכלי Base64 Decode.

מהו קידוד Base64?

קידוד Base64 הוא ערכת קידוד המאפשרת להעביר נתונים בינאריים בסביבות המשתמשות רק בכמה קידודי תווים מוגבלים (סביבות שבהן לא ניתן להשתמש בכל קודי התווים, כגון xml, html, script, יישומי מסרים מיידיים). מספר התווים בסכימה זו הוא 64, והמספר 64 במילה Base64 מגיע מכאן.

למה להשתמש בקידוד Base64?

הצורך בקידוד Base64 נובע מבעיות המתעוררות כאשר מדיה משודרת בפורמט בינארי גולמי למערכות מבוססות טקסט. מכיוון שמערכות מבוססות טקסט (כגון דואר אלקטרוני) מפרשות נתונים בינאריים כמגוון רחב של תווים, כולל תווי פקודה מיוחדות, רוב הנתונים הבינאריים המועברים למדיום ההעברה מתפרשים בצורה שגויה על ידי מערכות אלו ואובדים או פגומים בשידור. תהליך.

שיטה אחת לקידוד נתונים בינאריים כאלה באופן שימנע בעיות שידור כאלה היא לשלוח אותם כטקסט ASCII רגיל בפורמט מקודד Base64. זוהי אחת הטכניקות המשמשות את תקן MIME לשליחת נתונים שאינם טקסט רגיל. שפות תכנות רבות, כגון PHP ו-Javascript, כוללות פונקציות קידוד ופענוח Base64 לפירוש נתונים המועברים באמצעות קידוד Base64.

Logic קידוד Base64

בקידוד Base64, 3*8 ביטים = 24 ביטים של נתונים המורכבים מ-3 בתים מחולקים ל-4 קבוצות של 6 ביטים. התווים התואמים לערכים העשרוניים שבין [0-64] של 4 קבוצות 6 סיביות אלה מותאמים מטבלת Base64 לקידוד. מספר התווים המתקבל כתוצאה מקידוד Base64 חייב להיות כפולה של 4. נתונים מקודדים שאינם כפולה של 4 אינם נתוני Base64 חוקיים. בעת קידוד עם אלגוריתם Base64, כאשר הקידוד הושלם, אם אורך הנתונים אינו כפולה של 4, התו "=" (שווה) מתווסף לסוף הקידוד עד שהוא כפול של 4. לדוגמה, אם יש לנו נתונים מקודדים ב-Base64 של 10 תווים כתוצאה מהקידוד, יש להוסיף שניים "==" בסוף.

דוגמה לקידוד Base64

לדוגמה, קח את שלושת מספרי ה-ASCII 155, 162 ו-233. שלושת המספרים הללו יוצרים זרם בינארי של 100110111010001011101001. קובץ בינארי כגון תמונה מכיל זרם בינארי שעובד עבור עשרות או מאות אלפי אפסים ואחדים. מקודד Base64 מתחיל בפיצול הזרם הבינארי לקבוצות של שישה תווים: 100110 111010 001011 101001. כל אחת מהקבוצות הללו מתורגמת למספרים 38, 58, 11 ו-41. זרם בינארי בן שישה תווים מומר בין בינארי (או בסיסי). 2) לתווים עשרוניים (בסיס-10) על ידי ריבוע של כל ערך המיוצג על ידי 1 במערך הבינארי בריבוע המיקום. מתחילים מימין ועוברים שמאלה ומתחילים מאפס, הערכים בזרם הבינארי מייצגים 2^0, ואז 2^1, ואז 2^2, ואז 2^3, ואז 2^4, ואז 2^ 5.

הנה עוד דרך להסתכל על זה. החל משמאל, כל עמדה שווה 1, 2, 4, 8, 16 ו-32. אם למשבצת יש מספר בינארי 1, אתה מוסיף את הערך הזה; אם למשבצת יש 0, אתה חסר. מערך בינארי 100110 הופך ל-38: 0 * 2 ^ 01 + 1 * 2 ^ 1 + 1 * 2 ^ 2 + 0 * 2 ^ 3 + 0 * 2 ^ 4 + 1 * 2 ^ 5 = 0 + 2 עשרוני + 4 + 0 + 0 + 32. קידוד Base64 לוקח את המחרוזת הבינארית הזו ומחלק אותה לערכי 6 סיביות 38, 58, 11 ו-41. לבסוף, המספרים הללו מומרים לתווי ASCII באמצעות טבלת הקידוד Base64.