Base64 से हेक्स कन्वर्टर

Base64 पेस्ट करें और वही बाइट हेक्साडेसिमल रूप में देखें। यह हैश की तुलना करने, कुंजियों और सिग्नेचर की जाँच करने, और उन फ़िंगरप्रिंट का मिलान करने में काम आता है जिन्हें अलग-अलग टूल अलग-अलग फ़ॉर्मैट में दिखाते हैं।

पूरी तरह आपके ब्राउज़र में चलता है। कुछ भी अपलोड नहीं होता।

उपयोग कैसे करें

  1. Base64 स्ट्रिंग को इनपुट में पेस्ट करें। स्रोत में Base64 और लक्ष्य में हेक्स पहले से चुने हुए हैं।
  2. हेक्साडेसिमल आउटपुट देखें, जिसमें हर बाइट के लिए दो हेक्स अंक होते हैं।
  3. अगर आपको कोई दूसरा फ़ॉर्मैट चाहिए, तो लक्ष्य में Base58 या Base32 जैसी कोई अन्य एनकोडिंग चुनें, या हेक्स को वापस Base64 में बदलने के लिए “इनपुट और आउटपुट की अदला-बदली करें” बटन दबाएँ।
  4. परिणाम कॉपी करें।

एक ही बाइट लिखने के दो तरीक़े

हेक्स और Base64 दोनों बाइनरी डेटा को टेक्स्ट के रूप में लिखते हैं। हेक्स हर बाइट के लिए दो अक्षर इस्तेमाल करता है, जिससे अलग-अलग बाइट के मान पढ़ना और उनकी तुलना करना आसान हो जाता है। Base64 तीन बाइट को चार अक्षरों में समेट देता है और लगभग एक-तिहाई छोटा होता है। इनके बीच बदलने से केवल लिखने का तरीक़ा बदलता है, डेटा कभी नहीं:

मानबाइटहेक्स लंबाईBase64 लंबाई
MD5 हैश163224
SHA-1 हैश204028
SHA-256 हैश, Ed25519 सार्वजनिक कुंजी326444
SHA-384 हैश489664
SHA-512 हैश, Ed25519 सिग्नेचर6412888

हेक्स एडिटर, पैकेट एनालाइज़र और डीबगर भी हेक्स ही दिखाते हैं, इसलिए Base64 को हेक्स में बदलकर आप डेटा को इन टूल में दिखने वाले बाइट से सीधे मिला सकते हैं।

Base64 से हेक्स की ज़रूरत कब पड़ती है

  • हैश की तुलना। sha256sum जैसे टूल हेक्स दिखाते हैं, जबकि Subresource Integrity एट्रिब्यूट, Content Security Policy हैश और Content-MD5 जैसे चेकसम हेडर Base64 का उपयोग करते हैं। दोनों की तुलना करने के लिए किसी एक को दूसरे फ़ॉर्मैट में बदलें।
  • SSH फ़िंगरप्रिंट। ssh-keygen -l SHA256: फ़िंगरप्रिंट को बिना पैडिंग वाले 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 डिकोड किया जाता है और फिर मिलने वाले हर बाइट को दो हेक्स अंकों में लिखा जाता है। अगर आपको ख़ुद Base64 स्ट्रिंग के अक्षरों के कोड चाहिए, तो उसे Base16 टूल से टेक्स्ट के रूप में एनकोड करें।
हेक्स आउटपुट Base64 इनपुट से लंबा क्यों होता है?

हेक्स को हर बाइट के लिए 2 अक्षर चाहिए, जबकि Base64 को लगभग 1.33। 32 बाइट का SHA-256 डाइजेस्ट Base64 में 44 अक्षरों का और हेक्स में 64 अक्षरों का होता है।

बड़े अक्षरों वाला हेक्स या कोलन विभाजक कैसे पाएँ?
हेक्स अंक केस-संवेदी नहीं होते, इसलिए छोटे और बड़े अक्षरों वाले मान बराबर हैं। कोई ख़ास शैली चाहिए तो हेक्स को Base16 एनकोडर में पेस्ट करें, “इनपुट प्रकार” में “हेक्स” चुनें, और फिर बड़े अक्षर, स्पेस या कोलन विभाजक, या 0x प्रीफ़िक्स चुनें।
क्या JWT या JSON Web Key के Base64URL मान भी बदले जा सकते हैं?

हाँ। URL-सुरक्षित अक्षर और गायब पैडिंग अपने-आप सँभाल लिए जाते हैं, इसलिए कुंजी के पैरामीटर और सिग्नेचर बिना कोई बदलाव किए पेस्ट किए जा सकते हैं।