उन हैश नहीं ASCII-कर रहे हैं कारण आप हेक्स अंक देखना है, क्योंकि सॉफ्टवेयर आप उन्हें उत्पन्न करने के लिए उपयोग करें डाइजेस्ट की बाइनरी उत्पादन लेता है और इसके बारे में एक ASCII स्ट्रिंग में बदल जाता है हेक्स अंक।
उदाहरण के लिए, एमडी 5 डाइजेस्ट 16 बाइट्स की सरणी भर देगा। आप इसे 32 अक्षरों की स्ट्रिंग के रूप में भी प्रस्तुत कर सकते हैं, लेकिन पाचन का सबसे बुनियादी रूप अभी भी बाइट्स की सरणी है।
जब आप हेक्स स्ट्रिंग में बाइट्स की सरणी बदलते हैं, तो आपको डेटा के प्रत्येक 4 बिट्स का प्रतिनिधित्व करने के लिए 8 बिट्स (एक पूर्ण वर्ण) की आवश्यकता होती है। यद्यपि इसे अक्सर इस तरह से नहीं कहा जाता है, आप कह सकते हैं कि यह "बेस 16" एन्कोडिंग का उपयोग करता है, क्योंकि आप एक समय में 4 बिट्स पकड़ रहे हैं और उन्हें 16-वर्ण वर्णमाला में मैप कर रहे हैं।
दूसरी ओर, बेस 64, एक समय में 6 बिट्स पकड़ता है और उन्हें 64-वर्ण वर्णमाला में मानचित्रित करता है। इसका मतलब है कि डेटा के हर 6 बिट्स का प्रतिनिधित्व करने के लिए आपको 8 बिट्स (दोबारा, एक पूर्ण चरित्र) की आवश्यकता है, जिसमें आधार 16 के आधे बर्बाद बिट्स हैं। बेस 16-एन्कोडेड स्ट्रिंग हमेशा मूल के रूप में दोगुनी होगी; बेस 64-एन्कोडेड स्ट्रिंग केवल चार तिहाई बड़ी होगी। एक SHA256 हैश के लिए, base16 64 बाइट्स करता है, लेकिन, बाइट्स, हेक्स, और बेस 64 नमूने नीचे एक ही बाइट्स सांकेतिक शब्दों में बदलना बेस 64 उदाहरण के लिए लगभग 43
जो मेरे प्रश्न का उत्तर देता है। धन्यवाद! – tuna
@zneak अंतरिक्ष हैश को हैश पर बेस 64 एन्कोडिंग का उपयोग करने का कारण है। यह नहीं है कि अगर हमें यह हैश भेजने की आवश्यकता है तो हमें उस हैश को पाठ के रूप में प्रस्तुत करने की आवश्यकता है और बेस 64 बाइनरी डेटा को सेट पर सीमित करके करता है 64 आम तौर पर अधिकांश आम एन्कोडिंग से पात्रों को ओवरलैप कर रहे हैं? – crackerplace
@zneak मेरा मतलब हैश को किसी भी कंप्यूटर पर एक प्रस्तुत करने योग्य फ़ॉर्म देकर। – crackerplace