उपयोग कैसे करें
- Base64 स्ट्रिंग को इनपुट में पेस्ट करें। स्रोत में Base64 और लक्ष्य में हेक्स पहले से चुने हुए हैं।
- हेक्साडेसिमल आउटपुट देखें, जिसमें हर बाइट के लिए दो हेक्स अंक होते हैं।
- अगर आपको कोई दूसरा फ़ॉर्मैट चाहिए, तो लक्ष्य में Base58 या Base32 जैसी कोई अन्य एनकोडिंग चुनें, या हेक्स को वापस Base64 में बदलने के लिए “इनपुट और आउटपुट की अदला-बदली करें” बटन दबाएँ।
- परिणाम कॉपी करें।
एक ही बाइट लिखने के दो तरीक़े
हेक्स और Base64 दोनों बाइनरी डेटा को टेक्स्ट के रूप में लिखते हैं। हेक्स हर बाइट के लिए दो अक्षर इस्तेमाल करता है, जिससे अलग-अलग बाइट के मान पढ़ना और उनकी तुलना करना आसान हो जाता है। Base64 तीन बाइट को चार अक्षरों में समेट देता है और लगभग एक-तिहाई छोटा होता है। इनके बीच बदलने से केवल लिखने का तरीक़ा बदलता है, डेटा कभी नहीं:
| मान | बाइट | हेक्स लंबाई | Base64 लंबाई |
|---|---|---|---|
| MD5 हैश | 16 | 32 | 24 |
| SHA-1 हैश | 20 | 40 | 28 |
| SHA-256 हैश, Ed25519 सार्वजनिक कुंजी | 32 | 64 | 44 |
| SHA-384 हैश | 48 | 96 | 64 |
| SHA-512 हैश, Ed25519 सिग्नेचर | 64 | 128 | 88 |
हेक्स एडिटर, पैकेट एनालाइज़र और डीबगर भी हेक्स ही दिखाते हैं, इसलिए Base64 को हेक्स में बदलकर आप डेटा को इन टूल में दिखने वाले बाइट से सीधे मिला सकते हैं।
Base64 से हेक्स की ज़रूरत कब पड़ती है
- हैश की तुलना।
sha256sumजैसे टूल हेक्स दिखाते हैं, जबकि Subresource Integrity एट्रिब्यूट, Content Security Policy हैश औरContent-MD5जैसे चेकसम हेडर Base64 का उपयोग करते हैं। दोनों की तुलना करने के लिए किसी एक को दूसरे फ़ॉर्मैट में बदलें। - SSH फ़िंगरप्रिंट।
ssh-keygen -lSHA256:फ़िंगरप्रिंट को बिना पैडिंग वाले Base64 में दिखाता है, जबकि SSHFP DNS रिकॉर्ड उसी SHA-256 डाइजेस्ट को हेक्स में रखते हैं। हेक्स रूप पाने के लिएSHA256:के बाद वाला हिस्सा पेस्ट करें। - कुंजियाँ, IV और सिग्नेचर। क्रिप्टोग्राफ़िक कोड डीबग करते समय बाइट को हेक्स में देखने से लंबाई जाँचना, मानों की तुलना करना और किसी गायब या अतिरिक्त बाइट को पकड़ना आसान हो जाता है।
कन्वर्टर कौन-सा इनपुट स्वीकार करता है
Base64 इनपुट में स्पेस और लाइन ब्रेक अनदेखे कर दिए जाते हैं, URL-सुरक्षित अक्षर - और _ स्वीकार किए जाते हैं, और = पैडिंग वैकल्पिक है, इसलिए JSON, JWT या टर्मिनल आउटपुट से कॉपी किए गए मान जैसे के तैसे पेस्ट किए जा सकते हैं। रूपांतरण डिकोड किए गए बाइट पर होता है: परिणाम डेटा का हेक्स होता है, Base64 अक्षरों का नहीं। किसी टेक्स्ट के हेक्स कोड देखने हों, तो इसके बजाय Base16 का उपयोग करें।
# शेल
printf '%s' "$B64" | base64 --decode | xxd -p
# Python
base64.b64decode(s).hex()
// Node.js
Buffer.from(s, 'base64').toString('hex')
अक्सर पूछे जाने वाले प्रश्न
यह Base64 टेक्स्ट को बदलता है या उन बाइट को जिन्हें वह दर्शाता है?
हेक्स आउटपुट Base64 इनपुट से लंबा क्यों होता है?
हेक्स को हर बाइट के लिए 2 अक्षर चाहिए, जबकि Base64 को लगभग 1.33। 32 बाइट का SHA-256 डाइजेस्ट Base64 में 44 अक्षरों का और हेक्स में 64 अक्षरों का होता है।
बड़े अक्षरों वाला हेक्स या कोलन विभाजक कैसे पाएँ?
क्या JWT या JSON Web Key के Base64URL मान भी बदले जा सकते हैं?
हाँ। URL-सुरक्षित अक्षर और गायब पैडिंग अपने-आप सँभाल लिए जाते हैं, इसलिए कुंजी के पैरामीटर और सिग्नेचर बिना कोई बदलाव किए पेस्ट किए जा सकते हैं।