SRI हैश जनरेटर
किसी भी JS या CSS फ़ाइल के लिए सबरिसोर्स इंटीग्रिटी हैश जनरेट करें और उपयोग के लिए तैयार स्क्रिप्ट या लिंक टैग पाएँ।
🔒 पूरी तरह से आपके ब्राउज़र में संसाधित - आपके द्वारा यहां दर्ज की गई कोई भी चीज़ कभी भी अपलोड नहीं की जाती है।
परिणाम
सबरिसोर्स इंटीग्रिटी (SRI) ब्राउज़र को यह सत्यापित करने देता है कि किसी CDN या तृतीय-पक्ष होस्ट से लाई गई स्क्रिप्ट या स्टाइलशीट चलने से पहले बदली तो नहीं गई है — ब्राउज़र डाउनलोड किए गए बाइट्स का हैश करता है और यदि डाइजेस्ट आपके द्वारा प्रकाशित integrity एट्रिब्यूट से मेल नहीं खाता तो फ़ाइल को निष्पादित करने से मना कर देता है। यह टूल आपके द्वारा ड्रॉप की गई किसी भी JS या CSS फ़ाइल के लिए उस डाइजेस्ट की गणना करता है, पूरी तरह आपके ब्राउज़र टैब के अंदर, ताकि हैश करने के लिए फ़ाइल को कभी आपकी मशीन छोड़ने की ज़रूरत न पड़े।
एक सामान्य हैश टूल उपयोग करने योग्य SRI मान उत्पन्न नहीं करेगा: स्पेक के लिए बेस64-एन्कोडेड डाइजेस्ट आवश्यक है, न कि वह हेक्साडेसिमल स्ट्रिंग जो अधिकतर चेकसम टूल प्रिंट करते हैं, और यह केवल तीन एल्गोरिदम पहचानता है — sha256, sha384 और sha512। यह जनरेटर एल्गोरिदम के चयन को ठीक उन्हीं तीन तक सीमित करता है और परिणाम को सही तरीके से एन्कोड करता है, फिर एक कदम आगे बढ़कर उसके चारों ओर पूरा HTML टैग बनाता है, जिसमें एक प्लेसहोल्डर src या href फ़ील्ड होती है जिसे आप कॉपी करने से पहले वहीं संपादित कर सकते हैं।
अंदरूनी रूप से फ़ाइल को File API से पढ़ा जाता है, नेटिव crypto.subtle.digest() कार्यान्वयन से हैश किया जाता है, और परिणामी बाइट्स को एक बड़े स्प्रेड ऑपरेशन के बजाय छोटे-छोटे खंडों में बेस64 में बदला जाता है — एक ऐसी बारीकी जो तब मायने रखती है जब कोई बंडल JS फ़ाइल लगभग एक लाख बाइट से बड़ी हो जाती है, जहाँ सीधे रूपांतरण के तरीके ब्राउज़र की कॉल-स्टैक सीमा से टकरा सकते हैं।
sha384 डिफ़ॉल्ट रूप से चुना जाता है क्योंकि SRI उदाहरणों और दस्तावेज़ीकरण में सबसे अधिक अनुशंसित एल्गोरिदम यही है, जो डाइजेस्ट लंबाई और टकराव प्रतिरोध के बीच संतुलन बनाता है, लेकिन यदि कोई बिल्ड पाइपलाइन या CDN प्रदाता भिन्न आवश्यकता निर्दिष्ट करता है तो sha256 और sha512 एक क्लिक दूर हैं।