Menu

קידוד ופענוח Base64

לקודד או לפענח מחרוזות וקבצי Base64 מיד.

מאת Nethanel Bar, Co-founder & CEO

עודכן לאחרונה

מוכנים ללמוד תכנות באמת?

ב-Coddy לומדים דרך כתיבת קוד אמיתי בדפדפן: שיעורים אינטראקטיביים, משוב מיידי ועזרה מ-AI כשנתקעים.

מה זה Base64?

Base64 היא שיטת קידוד שמייצגת נתונים בינאריים באמצעות 64 תווים ניתנים להדפסה. מפתחים משתמשים בה בכל פעם שמערכת שמבינה רק טקסט צריכה להעביר בתים: תמונות קטנות שמוטמעות ב-HTML, טוקנים, קבצים מצורפים לאימייל, data URL, סודות להעתקה בלוגים ושדות JSON שמאחסנים בלובים בינאריים.

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

מאחורי הקלעים, Base64 לוקח 3 בתים (24 ביט) וכותב אותם מחדש כ-4 תווים מתוך אלפבית קבוע של 64 תווים (A עד Z, a עד z, 0 עד 9, +, /). כשאורך הקלט אינו כפולה של 3, המקודד מוסיף בסוף תו = אחד או שניים כריפוד. לכן מחרוזות Base64 מסתיימות לעתים קרובות ב-=.

מה תלמדו תוך כדי שימוש ב-Base64

  • קידוד משנה את האופן שבו הנתונים מיוצגים; הוא לא מסתיר או מגן עליהם: כל אחד יכול לפענח אותם.
  • הפלט של Base64 גדול בערך פי 4/3 מהבתים המקוריים, כך שהוא נוח אבל לא חסכוני במקום.
  • תווי ריפוד כמו = משלימים את הקבוצה האחרונה של 4 והם רגילים בהרבה מחרוזות Base64.
  • יש שתי גרסאות קרובות: Base64 סטנדרטי (משתמש ב-+ וב-/) ו-Base64URL (משתמש ב-- וב-_ כדי שיהיה בטוח בכתובות URL וב-JWT).

איך לקודד ולפענח Base64 צעד אחר צעד

  1. בחרו כיוון

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

  2. הדביקו את הקלט או גררו קובץ

    הדביקו מחרוזת בתיבת הטקסט, או גררו קובץ (תמונה, PDF, כל דבר) לאזור השחרור. קבצים מומרים ל-URL מסוג data: שמוכן להטמעה ב-HTML או ב-CSS.

  3. קראו את הפלט

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

  4. העתיקו את התוצאה

    לחצו על כפתור ההעתקה כדי לשים את התוצאה בלוח. הכול רץ בדפדפן, כך שהקלט לא עוזב את המחשב שלכם.

מדריך מהיר ל-Base64

החלקים שתפגשו שוב ושוב ברגע שתתחילו לעבוד עם Base64, כפי שמוגדרים ב-RFC 4648.

רכיבמשמעותדוגמה
אלפבית64 התווים שבהם משתמש Base64 סטנדרטיA–Z, a–z, 0–9, +, /
אלפבית בטוח ל-URLמשמש ב-JWT ובכתובות URLA–Z, a–z, 0–9, -, _
ריפודמרפד את הקבוצה האחרונה כשהאורך אינו כפולה של 3= או ==
גודל קבוצהבתים לכל מקטע מקודד ← 4 תווי פלט3 בתים ← 4 תווים
גידול באורךהפלט גדול בכ-33% מהקלט100 B ← 136 תווים
Data URLהטמעת קובץ ישירות ב-HTML/CSSdata:image/png;base64,...

דוגמאות Base64 לנסות

פענוח מילה פשוטה

מקודד

SGVsbG8gV29ybGQ=

מפוענח

Hello World

ה-= בסוף הוא ריפוד כי Hello World הוא 11 בתים, שאינו כפולה של 3. הפענוח תמיד מסיר אותו נכון.

קידוד מטען JSON קטן

מקור
{"role":"student","active":true}
Base64

eyJyb2xlIjoic3R1ZGVudCIsImFjdGl2ZSI6dHJ1ZX0=

טוקני JWT מקודדים כל מקטע בדיוק כך, ולכן מטעני JWT מתחילים בדרך כלל ב-eyJ, שזו צורת ה-Base64 של {".

זיהוי data URL

Data URL

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgAAIAAAUAAen8GVAAAAAASUVORK5CYII=

הקידומת מצהירה על סוג המדיה (image/png) ועל הקידוד (base64). כל מה שאחרי הפסיק הוא תוכן הקובץ. שימושי לתמונות זעירות שנטענות יחד עם הדף.

השוואת האלפבית הסטנדרטי והבטוח ל-URL

סטנדרטי

Pj4/Pyc+Pg==

URL-safe

Pj4_Pyc-Pg

Base64 בטוח ל-URL מחליף את + ב-- ואת / ב-_, כך שהערך יכול לשבת בתוך URL בלי escape נוסף. JWT משתמשים בגרסה הזו.

טעויות נפוצות ב-Base64

  • לקרוא ל-Base64 "מוצפן". כל אחד יכול לפענח אותו בלי סיסמה או מפתח.
  • לשכוח שטקסט Unicode צריך להפוך לבתים של UTF-8 *לפני* קידוד Base64, אחרת תווים שאינם ASCII לא חוזרים נכון.
  • להסיר את ריפוד ה-= ידנית ולהזין את התוצאה למפענח קפדני שמצפה לו. (מפענחים בטוחים ל-URL מקבלים בדרך כלל ריפוד חסר; מפענחים סטנדרטיים אולי לא.)
  • להטמיע תמונות גדולות כ-Base64 ב-CSS או ב-HTML כשכתובת קובץ רגילה הייתה קטנה יותר, מהירה יותר וקלה יותר לשמירה במטמון.

שאלות נפוצות על Base64

מה זה קידוד Base64?
Base64 הוא קידוד שמייצג נתונים בינאריים כטקסט ניתן להדפסה באמצעות אלפבית של 64 תווים. משתמשים בו בכל מקום שבו בתים צריכים לעבור דרך מערכת שמבינה רק טקסט: ממשקי API, JSON, JWT, אימייל, data URL.
איך Base64 עובד?
Base64 לוקח 3 בתים של קלט (24 ביט) ומפצל אותם לארבע קבוצות של 6 ביט. כל קבוצה של 6 ביט ממופה לאחד מ-64 תווים. אם אורך הקלט אינו כפולה של 3 בתים, מתווספים תו = אחד או שניים כריפוד.
איך מפענחים מחרוזת Base64?
הדביקו את המחרוזת במפענח Base64. הפלט הוא הטקסט או הקובץ המקורי. בקוד, לרוב השפות יש פונקציה מובנית: atob() בדפדפנים, Buffer.from(str, 'base64') ב-Node.js, base64.b64decode() ב-Python.
האם Base64 מאובטח?
לא. Base64 הוא קידוד, לא הצפנה. הוא נועד לייצוג ולהעברה, לא לסודיות. אם אתם צריכים חיסיון, הצפינו קודם את הנתונים ורק אז קודדו את הטקסט המוצפן ב-Base64.
למה Base64 מסתיים לפעמים ב-=?
= הוא ריפוד. Base64 מפיק 4 תווים על כל 3 בתים של קלט. כשאורך הקלט אינו כפולה של 3, מתווספים = אחד או שניים כדי שאורך הפלט יישאר כפולה של 4.
האם Base64 יכול לקודד תמונות?
כן. אפשר לקודד את הבתים של תמונה ב-Base64 ולשים אותם בכתובת data:image/png;base64,... כך שהתמונה מוטמעת ישירות ב-HTML, ב-CSS או ב-JSON בלי בקשת רשת נפרדת.

למידע נוסף

כלי פיתוח נוספים

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל