עזרה טכנית
למה Base64 מגדיל קבצים?
Base64 בדרך כלל מגדיל נתונים בינאריים בכשליש. ראו את מבנה 3 הבתים ל־4 תווים, הריפוד, התוספת של Data URL, ומתי הגודל הנוסף משתלם.
Base64 בדרך כלל מגדיל נתונים בינאריים בכשליש כי הוא מייצג כל 3 בתים של נתונים בינאריים ב־4 תווי Base64 הניתנים להדפסה.
אם אורך הקלט אינו כפולה מדויקת של 3, Base64 סטנדרטי עם ריפוד עשוי להוסיף תווי =. האורך המקודד הוא 4 × ceil(n / 3), כאשר n הוא אורך הבתים המקורי.
«כ־33%» מתאר קלט גדול. בקלט זעיר האחוז יכול להיראות גדול בהרבה בגלל ריפוד. Base64 אינו דחיסה. לקידוד מול הצפנה ראו [Base64 אינו הצפנה: מה הוא באמת עושה](/he/story/base64-is-not-encryption).
מאמר זה מסביר למה פלט Base64 גדול מהבתים המקוריים. זה אינו מדריך אבטחה. אם דרוש קידוד מול הצפנה, השתמשו ב־Base64 אינו הצפנה: מה הוא באמת עושה.
למה Base64 צריך יותר מקום?
3 בתים הם 24 סיביות. Base64 מפצל את 24 הסיביות ל־4 קבוצות של 6 סיביות. כל קבוצה ממופה לתו Base64 אחד, כך ש־3 בתים בקלט הופכים ל־4 תווים בפלט. באחסון כבית אחד לכל תו ASCII זה 4 / 3 ≈ 1.333 — גידול של כ־33.3%.
- 3 בתים (24 סיביות)
- פיצול ל־4 קבוצות של 6 סיביות
- כל קבוצה → תו Base64 אחד
- 4 תווים (לעיתים קרובות 4 בתי טקסט)
דוגמה פשוטה שאפשר לבדוק
הקידודים האלה תואמים Base64 סטנדרטי עם ריפוד.
Man
Man
Base64
TWFu
Man הוא 3 בתי UTF-8/ASCII. TWFu הוא 4 תווים: 3 → 4.
Hello
Hello
Base64
SGVsbG8=
Hello הוא 5 בתים. SGVsbG8= הוא 8 תווים, כולל = אחד. בנתונים קטנים הריפוד גורם לאחוז להיראות גדול מ־33%.
איך מחשבים את גודל ה־Base64?
עבור Base64 סטנדרטי עם ריפוד, encodedLength = 4 × ceil(originalBytes / 3).
| בתים מקוריים | תווי Base64 |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 4 | 8 |
| 5 | 8 |
| 6 | 8 |
בית אחד או שניים עדיין מניבים 4 תווים. השתמשו בנוסחה, לא ב־33% קבוע.
מה משמעות ריפוד «=»?
הסימן = מראה שגוש 3 הבתים האחרון לא היה מלא. בית קלט אחד משתמש בשני תווי =; 2 בתים משתמשים באחד; 3 בתים באף אחד. ריפוד אינו הצפנה ואינו תכונת אבטחה.
האם Base64URL תופס פחות מקום?
Base64URL מחליף + ב־- ו־/ ב־_, ו־קידוד Base64 משמיט = סופי בקידוד. זה יכול לקצר את המחרוזת בתווי = האלה. מבנה 3 בתים → 4 תווים נשאר, כך ש־Base64URL אינו פורמט בינארי חסכוני יותר במקום.
למה קלט זעיר יכול לגדול ביותר מ־33%?
1 בית → 4 תווים הוא גידול של 300% באורך. 2 בתים → 4 הוא 100%. 3 בתים → 4 הוא כ־33.3%. כש־n גדל, הריפוד משפיע פחות והתקורה מתקרבת לכ־33%. Base64 אינו גדול ב־33% בכל מקרה במדויק.
למה Data URL של Base64 גדול עוד יותר?
Data URL מוסיף קידומת כמו data:image/png;base64, לפני המטען. בקובץ זעיר הקידומת יכולה לשלוט באחוז. קידוד Base64 יכול להפיק Base64 גולמי או Data URL; פלט Data URL משתמש באלפבית הסטנדרטי.
Base64 מול בינארי: מה קטן יותר?
בינארי גולמי חסכוני יותר במקום להעברה ולאחסון. Base64 גדול יותר, אבל בטוח כטקסט ב־JSON, בדוא״ל ובנתיבי טקסט בלבד. זה קידוד בינארי לטקסט, לא דחיסה.
האם Base64 דוחס קבצים?
לא. Base64 אינו פורמט דחיסה. הטקסט המקודד גדול בדרך כלל מהבתים המקוריים. אם אחר כך מפעילים gzip או Brotli על הטקסט, חלק מהיתירות עשוי להצטמצם—התוצאה תלויה בנתונים ובדוחס. gzip אינו מסיר לחלוטין את תקורה של Base64.
מה קורה אם דוחסים Base64 ב־gzip?
דחיסת HTTP יכולה לצמצם דפוסים חוזרים בטקסט Base64. JPEG, PNG או ZIP לרוב נדחסים גרוע גם כבתים גולמיים, ו־Base64 ואז gzip עדיין תלוי במקרה. אין אחוז תוספת אוניברסלי אחרי gzip.
האם לאחסן קבצים כ־Base64?
Base64 יכול להכניס בינארי לשדה JSON, לנכס קטן מוטמע, ל־API של טקסט בלבד, להעתקה והדבקה או ל־Data URL. בקבצים גדולים אחסון, זיכרון וגודל מטען כולם גדלים. זה לא «לעולם אל תשתמשו ב־Base64 לקבצים».
למה Base64 נפוץ ב־API של JSON?
ל־JSON אין טיפוס בינארי גולמי מובנה, לכן ממשקים לרוב שמים בתים במחרוזת Base64. לקבצים גדולים, multipart/form-data, אחסון אובייקטים או העלאה בינארית ישירה יכולים להתאים יותר. אף בחירה אינה תמיד הטובה ביותר.
למה משתמשים ב־Base64 בדוא״ל?
MIME יכול להשתמש ב־Base64 כדי שקובץ מצורף בינארי ייסע כתווים בטוחים לטקסט. אותה תקורה בגודל עדיין חלה. זה ייצוג תעבורה, לא קובץ קטן יותר.
מתי הגודל הנוסף משתלם?
הגודל הנוסף יכול להשתלם כשהבינארי חייב לשבת בתוך טקסט, המטען קטן, API דורש Base64, או שדרוש Data URL. למדיה גדולה העדיפו בינארי גולמי כשהמערכת מאפשרת.
מתי להימנע מ־Base64?
דלגו עליו בקבצים גדולים, רוחב פס צר, העברות תכופות, או כשכבר יש נתיב בינארי—מצבי, לא «Base64 הוא נוהג רע».
אורכי Base64 עם ריפוד שאפשר לבדוק
ספירות בתים מקוריים וספירות תווי Base64 סטנדרטי עם ריפוד:
| בתים מקוריים | תווי Base64 |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 10 | 16 |
| 100 | 136 |
| 1,000 | 1,336 |
כל השורות עוקבות אחרי 4 × ceil(n / 3). אלה ספירות תווי Base64.
דוגמה: כמה גדול יהיה קובץ של 1,000 בתים?
4 × ceil(1000 / 3). ceil(333.333…) = 334, ו־4 × 334 = 1336. לכן 1,000 בתים הופכים ל־1,336 תווי Base64. באחסון כ־UTF-8/ASCII כל תו הוא בדרך כלל בית אחד—אל תתייחסו ל־1,336 כספירת בתים מדויקת בזיכרון.
האם Base64 יכול להשתמש ביותר זיכרון ממה שגודל הקובץ מרמז?
סביבות ריצה מסוימות מאחסנות מחרוזות ביותר מבית אחד לתו, וקידוד/פענוח יכולים להחזיק מאגר ומחרוזת יחד. השימוש בזיכרון אינו בדיוק אורך התווים.
מדריך החלטה פשוט לפי גודל
אם המערכת מקבלת בינארי גולמי, העדיפו אותו לגודל. אם מותר רק טקסט, Base64 עשוי להתאים. למטען גדול בדקו נתיב העלאה בינארי. לטקסט בטוח ל־URL שקלו Base64URL—ההרחבה מ־3 ל־4 נשארת.
- צריך לשלוח נתונים בינאריים
- בינארי גולמי מותר? העדיפו בינארי לגודל
- שדה טקסט בלבד? Base64 עשוי להתאים
- מטען גדול? בדקו נתיב העלאה בינארי
- צריך טקסט בטוח ל־URL? שקלו Base64URL
- צפו לכ־33% יותר טקסט בקלט גדול
Base64 אינו מיועד להקטין נתונים. הוא מקל לייצג בינארי בתוך מערכות מבוססות־טקסט, והמחיר הוא גודל נוסף.
קודדו או פענחו Base64 בדפדפן
NEXNARA קידוד Base64 מקודד ומפענח טקסט, ויכול להפוך קובץ ל־Base64 או Data URL ולהחזיר Base64 לקובץ.
טקסט משתמש בבתי UTF-8 ואז Base64—לא ASCII בלבד. בחרו Standard או Base64URL. פלט קובץ יכול להיות Base64 גולמי או Data URL (אלפבית סטנדרטי). קלט לא תקף נדחה. בתים שאינם UTF-8 צריכים אל קובץ, לא פענוח כטקסט.
קבצים מעל 10 MB עלולים להאט את הלשונית (אזהרה). קבצים מעל 32 MB נחסמים.
הקידוד והפענוח מתרחשים בדפדפן שלכם. הקובץ לא נשלח לשרת NEXNARA בכלי הזה. מודעות ותכונות אתר אחרות עדיין משתמשות ברשת.
הדביקו טקסט או קובץ ב־קידוד Base64 והשוו בתים מקוריים לאורך המקודד.
FAQ
למה Base64 מגדיל את גודל הקובץ?
הוא ממפה 3 בתים (24 סיביות) ל־4 תווים (4 × 6 סיביות). באחסון כטקסט זה כשליש יותר בקלט גדול.
האם Base64 תמיד גדול ב־33%?
לא. קלט גדול מתקרב לכ־33.3%. קלט זעיר יכול לגדול יותר בגלל ריפוד. השתמשו ב־4 × ceil(n / 3).
כמה Base64 גדול יותר מבינארי?
האורך הסטנדרטי עם ריפוד הוא 4 × ceil(n / 3) תווים. קידומת Data URL מוסיפה עוד.
האם דחיסת Base64 מקטינה את הקובץ?
Base64 אינו דוחס. gzip או Brotli על הטקסט המקודד עשויים לצמצם חלק; הם לא מוחקים את התקורה בכל מקרה.
האם Base64URL תופס פחות מקום?
הוא יכול להשמיט ריפוד =, כך שהמחרוזת עשויה להיות קצרה ב־0–2 תווים. מבנה הקידוד מ־3 ל־4 זהה.
האם להשתמש ב־Base64 לקבצים גדולים?
רק אם דרוש טקסט. להעברות גדולות או תכופות נתיב בינארי לרוב קטן יותר. Base64 אינו תמיד שגוי ב־API.