CodeKitHub
כלי קידוד

מקודד / מפענח Base64 אונליין

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

Base64 הופך כל 3 בייטים של נתונים ל-4 תווי ASCII, כך שהפלט המקודד גדול בכ-33% מהקלט המקורי. המירו טקסט ל-Base64 או פענחו מחרוזת Base64 חזרה לטקסט קריא. הכלי הזה בטוח ל-UTF-8, כך שהוא מטפל כראוי באימוג'י, בסינית ובתווים אחרים שאינם ASCII שגורמים לכלי Base64 פשוטים להיכשל. הכול פועל באופן מקומי בדפדפן שלכם.

מהו הכלי הזה?

Base64 הוא סכמת קידוד שממירה נתונים בינאריים או טקסטואליים לקבוצה של 64 תווי ASCII בטוחים (A–Z, a–z, 0–9, + ו-/). הוא נמצא בשימוש בכל מקום בתוכנה: הטמעת תמונות ב-HTML/CSS, כותרות אימות HTTP Basic, קבצים מצורפים לדוא"ל (MIME), JSON Web Tokens, ותשלובות API שחייבות לעבור בערוצים המיועדים לטקסט בלבד.

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

Base64 מוגדר רשמית ב-RFC 4648, המגדיר גם את הגרסה הבטוחה לכתובות URL הנפוצה ב-JWT וב-API של האינטרנט: היא מחליפה את + ב-- ואת / ב-_ כך שהמחרוזת המקודדת יכולה לנוע בתוך כתובת URL בלי צורך בקידוד אחוזים.

למה להשתמש בו?

  • פענחו טוקני API, קטעי JWT וכותרות אימות כדי לראות מה בפנים.
  • קדדו טקסט עבור data URIs, קובצי תצורה או כותרות HTTP.
  • בטוח ל-UTF-8: אימוג'י ותווים שאינם לטיניים מקודדים ומפוענחים כראוי.
  • פרטי ב-100% — ההמרה מתבצעת בדפדפן שלכם, שום דבר לא מועלה.
  • חינם, ללא התחברות, ללא הגבלות גודל.

איך להשתמש

  1. הקלידו או הדביקו את התוכן שלכם בתיבת הקלט.
  2. לחצו על "קידוד" כדי להמיר טקסט ל-Base64, או "פענוח" כדי להמיר Base64 בחזרה לטקסט.
  3. אם הפענוח נכשל, הקלט אינו Base64 תקין — בדקו אם חסרים תווים או שיש רווחים מיותרים.
  4. לחצו על "העתק" כדי להעתיק את התוצאה.

דוגמה

קלט

Hello, CodeKitHub! 你好 👋

פלט

SGVsbG8sIENvZGVLaXRIdWIhIOS9oOWlvSDwn5GL

שימו לב איך התווים הסיניים והאימוג'י שורדים את המעבר הלוך ושוב — זה החלק הבטוח ל-UTF-8.

טיפים מעשיים

  • טוקני JWT הם שלושה קטעי Base64 המחוברים בנקודות — פענחו את השניים הראשונים (כותרת ותוכן) בנפרד כדי לקרוא אותם; השלישי הוא חתימה בינארית ויֵראה כרעש חסר משמעות.
  • אם הפענוח נכשל בקטע JWT, מדובר בקידוד base64url: החליפו קודם - ב-+ ו-_ ב-/ (כלים סטנדרטיים מצפים לאלפבית +/).
  • רווחים ומעברי שורה בתוך מחרוזת Base64 הם בדרך כלל שאריות לא מזיקות מדוא"ל או מיומני מערכת (logs), אבל חסרון של ריפוד = בסוף בדרך כלל כן מזיק — בדקו את האורך לפני שאתם מניחים שהנתונים פגומים.
  • Base64 מנפח נתונים בכ-33%. מתאים לתשלובות קטנות; עבור תמונות מעל כמה KB, קובץ אמיתי הוא כמעט תמיד הבחירה הטובה יותר על פני data URI.

תרחישי שימוש אמיתיים

שלושת המקרים שמביאים אנשים לכאן מדי יום: קריאת מה שנמצא בתוך כותרת Authorization או JWT, פענוח שדה תשלובת webhook/API שהגיע עטוף ב-Base64 (לרוב JSON — פרמטו אותו לאחר הפענוח), ויצירת data URI או מחרוזת Basic-Auth ידנית בזמן דיבוג.

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

איך לאבחן כשל בפענוח

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

→

שאלות נפוצות

האם Base64 היא הצפנה?

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

למה הפלט המפוענח שלי נראה כמו ג'יבריש?

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

מה הם סימני ה-= בסוף?

ריפוד (padding). Base64 פועל בבלוקים של 3 בייטים בקלט → 4 תווים בפלט. כאשר אורך הקלט אינו מתחלק ב-3, סימן = אחד או שניים משלימים את הבלוק האחרון.

האם הכלי הזה עובד עם אימוג'י ותווים סיניים?

כן. הוא מקודד את הטקסט תחילה כבייטים של UTF-8, וזו הגישה הסטנדרטית. כלים פשוטים שמשתמשים ישירות ב-btoa() נכשלים בכל תו שמחוץ ל-Latin-1 — הכלי הזה לא נכשל.

האם הנתונים שלי מועלים לאיזשהו מקום?

לא. הקידוד והפענוח מתבצעים כולם בדפדפן שלכם באמצעות JavaScript. הנתונים שלכם אף פעם לא עוזבים את המכשיר שלכם.

כלים קשורים