संभव डुप्लिकेट:
Why does base64 encoding requires padding if the input length is not divisible by 3?बेस 64 एन्कोडिंग में पैडिंग का उपयोग क्यों किया जाता है?
का हवाला देते हुए Wikipedia:
... इन गद्दी पात्रों तो जब डिकोडिंग खारिज कर दिया जाना चाहिए, लेकिन अभी भी की गणना की अनुमति देने के प्रभावी अनएन्डेड टेक्स्ट की लंबाई, जब इसकी इनपुट बाइनरी लंबाई 3 बाइट्स के एकाधिक नहीं होगी। ...
लेकिन पैडिंग चरित्र को पट्टी करने के बावजूद लंबाई कच्चे डेटा की गणना आसानी से की जा सकती है।
| Encoded
|--------------------------------------
Raw Size | Total Size | Real Size | Padding Size
1 | 4 | 2 | 2
2 | 4 | 3 | 1
3 | 4 | 4 | 0
4 | 8 | 6 | 2
5 | 8 | 7 | 1
6 | 8 | 8 | 0
7 | 12 | 10 | 2
8 | 12 | 11 | 1
9 | 12 | 12 | 0
10 | 16 | 14 | 2
.
.
.
तो असली इनकोडिंग आकार (तीसरे स्तंभ) आप हमेशा सही ढंग से अनुमान लगा सकते हैं क्या गद्देदार आकार होगा दिया:
PaddedSize = 4 * Ceil (RealSize/4)
तो सिद्धांत रूप में, वहाँ गद्दी की कोई जरूरत नहीं थी। एल्गोरिदम ने इसे संभाला होगा। यह मानते हुए कि बेस 64 एन्कोडिंग एक लोकप्रिय उद्योग मानक है, इसका उपयोग कई अनुप्रयोगों और उपकरणों में किया जाता है। ये कम एन्कोडेड आकार से लाभान्वित होंगे। तो सवाल यह है कि बेस 64 एन्कोडिंग में पैडिंग का उपयोग क्यों किया जाता है?
@ इग्नासिओ: यह प्रश्न * क्यों * समझाते हुए बहुत अच्छा नहीं है। – BastiBen
मैंने सोचा कि कुछ डुप्लिकेशन की अनुमति है (http: //blog.stackoverflow।com/2010/11/dr-strangedupe-or-how-i-learn-to-stop-anxing-and-love-duplication /) जब तक सवाल में पर्याप्त जानकारी डाली गई थी और इसे विभिन्न परिप्रेक्ष्य से पूछा गया था। – Hemant