Base64 बाइट को पाठ में भेजता है, गोपनीय नहीं बनाता

जब पाठ का माध्यम बाइट डेटा ले जाना चाहे तो Base64 उपयोगी है। यह डेटा का रूप बदलता है, उसे समझने वाले लोगों को सीमित नहीं करता और आकार घटने की गारंटी नहीं देता।

अक्षरों से पहले बाइट गिनें

पैडिंग वाला मानक Base64 हर 3 बाइट को 4 अक्षरों से दिखाता है और जरूरत पर अंतिम समूह = से पूरा करता है। लंबाई के लिए बाइट संख्या को 3 से भाग दें, ऊपर के पूर्णांक तक गोल करें, फिर 4 से गुणा करें।

UTF-8 में एक अक्षर 1 से अधिक बाइट ले सकता है। बराबर अक्षरों वाले लैटिन पाठ की तुलना में छोटा अरबी पाठ अधिक एन्कोड अक्षर दे सकता है।

संदर्भ: RFC 4648 — Base encodings, padding and security considerations

एन्कोड करना गोपनीयता नहीं देता

मान रखने वाला आम तौर पर बिना गुप्त कुंजी उसे डिकोड कर सकता है। पासवर्ड बचाने या साझा लिंक में जानकारी छिपाने के लिए Base64 न इस्तेमाल करें।

नतीजे को मूल जितना संवेदनशील मानें। पढ़ने से रोकने के लिए उचित सुरक्षा व्यवस्था चाहिए, केवल पाठ का रूप बदलना नहीं।

संदर्भ: RFC 4648 — Base encodings, padding and security considerations

समझें कि निकली बाइट किसकी होनी चाहिए

यह उपकरण पाठ को UTF-8 में एन्कोड और मान्य UTF-8 पाठ में डिकोड करता है। एन्कोड की हुई तस्वीर मान्य Base64 हो सकती है, फिर भी इस पाठ डिकोडर के लिए उपयुक्त नहीं।

कुछ लिंक का base64url रूप मानक Base64 से अलग है। स्वीकार करवाने के लिए बेतरतीब अक्षर जोड़ें या हटाएं नहीं; स्रोत को किस रूप की जरूरत है, जानें।

संदर्भ: RFC 4648 — Base encodings, padding and security considerations

उदाहरण: अक्षरों की गिनती एन्कोड आकार नहीं तय करती

Hi! में 3 UTF-8 बाइट हैं और यह SGkh बनता है: बिना पैडिंग के 4 अक्षर। डिकोड बिना पासवर्ड वही पाठ लौटाता है।

अरबी शब्द مرحبا में 5 अक्षर लेकिन 10 UTF-8 बाइट हैं। इसका एन्कोड 2YXYsdit2KjYpw== है, कुल 16 अक्षर। आकार बाइट से तय होता है; 2 बराबर चिह्नों का अर्थ मूल के 2 अक्षर हटना नहीं है।

संदर्भ