2012-04-20 11 views
7

हम वर्तमान में एक वेब एपीआई डिजाइन कर रहे हैं और प्राधिकरण को लागू करने की प्रक्रिया में हैं। हमने (ज्यादातर) amazons implementation का पालन किया है लेकिन एक हिस्सा है जो मैं वास्तव में पूरी तरह समझ नहीं पा रहा हूं।बेस 64 एपीआई प्राधिकरण कुंजी क्यों एन्कोड करता है?

अर्थात्, परिणामी एचएमएसी बेस 64 एन्कोडिंग का बिंदु क्या है? लंबाई में अंतर कम से कम अधिकांश साइटों के लिए नगण्य है। हालांकि अमेज़ॅन शायद अंतर देखेंगे। क्या यही एकमात्र कारण है? क्या यह शायद एसीआई/यूनिकोड के साथ कुछ करने के लिए है?

उत्तर

13

हैश एल्गोरिदम और एचएमएसी हेक्साडेसिमल स्ट्रिंग आउटपुट प्रदान नहीं करता है, जो कि कई लोग विश्वास करते हैं; वे दोनों बाइनरी डेटा आउटपुट। बेस 64 आपको एक स्ट्रिंग के रूप में बाइनरी डेटा को आसानी से और पोर्टेबल रूप से प्रस्तुत करने का एक तरीका प्रदान करता है।

जहां तक, यह केवल सुविधा के लिए और उनके सॉफ़्टवेयर के कई अलग-अलग हिस्सों के बीच मानक एन्कोडिंग का उपयोग करने की संभावना है। व्यापक रूप से उपयोग किए जाने वाले एन्कोडिंग के अलावा इसके अलावा कुछ खास नहीं है।

+4

आपके उत्तर में लागू यह है कि एपीआई कुंजी को क्लाइंट से सर्वरों तक पारित करने की आवश्यकता होती है जो आमतौर पर रीस्टफुल वेब सेवाओं को चलाते हैं और उन लोगों के साथ इंटरैक्शन आमतौर पर HTTP पर होते हैं, जो स्ट्रिंग का उपयोग करते हैं। इसलिए, HTTP पर ऐसी सेवा के लिए एपीआई कुंजी को पास करने के लिए, आपको इसे किसी भी तरह एन्कोड करने की आवश्यकता है और बेस 64 उस उद्देश्य के लिए एक लोकप्रिय विकल्प है। – jeffsix

+0

+1 यह एक अच्छा उदाहरण है जब यह बेस 64 का उपयोग करने के लिए बेहतर होगा। मैं अक्सर HTTP सामान नहीं करता, इसलिए इसे जोड़ने के लिए धन्यवाद। –

संबंधित मुद्दे