Base64
המרת טקסט מ- ואל Base64, כולל וריאנט בטוח ל-URL.
הפלט יופיע כאן
מה זה Base64 ולמה הוא קיים
Base64 הוא דרך לייצג נתונים בינריים כלשהם באמצעות 64 תווים פשוטים וניתנים-להדפסה בלבד: A–Z, a–z, 0–9 ועוד שני סמלים. הוא קיים מכיוון שהרבה מערכות נבנו לשאת טקסט, לא בתים גולמיים. גופי אימייל, כתובות URL, מחרוזות JSON, מאפייני HTML וכותרות HTTP עלולים כולם להשתבש מתוכן בינרי שרירותי, אבל הם מעבירים בשמחה טקסט Base64 ללא שינוי. קידוד ל-Base64 הופך נתונים בינריים לבטוחים לשיבוץ בערוצי הטקסט האלה.
המחיר הוא גודל: Base64 מייצג כל שלושה בתים כארבעה תווים, כך שהצורה המקודדת גדולה בכ-33% מהמקור. זה בסדר עבור payloads קטנים כמו טוקנים, תמונות קטנות או מפתחות, וזו הסיבה שקבצים גדולים לעיתים רחוקות מקודדים ב-Base64 בפועל.
זה קידוד, לא הצפנה
זה הדבר החשוב ביותר להבין לגבי Base64: הוא לא מספק שום אבטחה שהיא. כל אחד יכול לפענח Base64 מיידית — כולל הכלי הזה. הוא לא מסתיר כלום ולא מגן על כלום. אם צריך לשמור נתונים בסוד, יש להצפין אותם; Base64 רק הופך נתונים לבטוחים-לתעבורה, וקידוד סיסמה או מפתח API אינו מסתיר אותם.
Base64 סטנדרטי מול בטוח-ל-URL
Base64 סטנדרטי משתמש ב-+ וב-/ כשני התווים האחרונים שלו ומרפד את הסוף בסימני =. לתווים אלה יש משמעות מיוחדת בתוך כתובות URL ושמות קבצים, ולכן וריאנט בטוח-ל-URL מחליף את + ו-/ ב- - ו-_ ולרוב משמיט את הריפוד. השתמש באפשרות הבטוחה-ל-URL כשהערך המקודד יופיע בכתובת אינטרנט, בפרמטר שאילתה, ב-cookie או בשם קובץ. JSON Web Tokens, למשל, משתמשים ב-Base64 בטוח-ל-URL בדיוק מהסיבה הזו.
UTF-8 וטקסט שאינו ASCII
הפונקציות המובנות btoa ו-atob של הדפדפן מתמודדות רק עם Latin-1 וזורקות שגיאה על תווים כמו עברית, ערבית, סינית או אמוג'י. הכלי מקודד טקסט כ-UTF-8 קודם, כך שכל תו עובר הלוך ושוב נכון. זה אומר ש-שלום ו-😀 מקודדים ומפוענחים ללא שיבוש — מקור נפוץ ל"mojibake" (טקסט משובש) כשמפתחים משתמשים בפונקציות הדפדפן הגולמיות.
- קידוד: הקלד או הדבק טקסט קריא וקבל את צורת ה-Base64 שלו.
- פענוח: הדבק Base64 (סטנדרטי או בטוח-ל-URL, עם או בלי ריפוד) וקבל את הטקסט המקורי בחזרה.
שאלות נפוצות
- האם Base64 מאובטח או מוצפן?
- לא. Base64 הוא קידוד הפיך, לא הצפנה. כל אחד יכול לפענח אותו מיידית, אז לעולם אל תשתמש בו כדי להגן על סיסמאות, מפתחות או מידע אישי.
- האם הוא תומך בעברית, בערבית ובאמוג'י?
- כן. הטקסט מקודד כ-UTF-8 לפני ה-Base64, כך שתווים כמו שלום ו-😀 מקודדים ומפוענחים ללא שיבוש, בניגוד לפונקציה המובנית btoa של הדפדפן.
- מה זה Base64 בטוח-ל-URL?
- הוא מחליף את התווים + ו-/ ב- - ו-_ ומשמיט את הריפוד הנגרר, כך שהתוצאה בטוחה לשימוש בתוך כתובות URL, מחרוזות שאילתה, cookies, שמות קבצים וטוקנים כמו JWT.
- למה הפלט המפוענח שלי ריק או שגוי?
- לרוב הקלט אינו Base64 תקין — הוא עשוי להיות קטוע, להכיל תווים מאלפבית אחר, או להיות בעצם טקסט רגיל. הכלי מקבל קלט סטנדרטי וגם בטוח-ל-URL וסובלני לריפוד חסר, אבל הבתים עדיין צריכים להיות UTF-8 תקין כדי להיות מוצגים כטקסט.
- למה המחרוזת המקודדת ארוכה מהמקור?
- Base64 מקודד כל שלושה בתים כארבעה תווים, כך שהפלט גדול בכשליש מהקלט. תקורה זו מובנית בפורמט.
- האם אני צריך את תווי הריפוד (=)?
- ריפוד הופך את האורך לכפולה של ארבע ונדרש על ידי מפענחים מחמירים, אבל הכלי מקבל קלט עם או בלי. Base64 בטוח-ל-URL בדרך כלל משמיט ריפוד.
- האם הקלט שלי נשלח לשרת?
- לא. הקידוד והפענוח רצים כולם בדפדפן שלך; שום דבר שתדביק לא עוזב את המכשיר שלך.