मुफ़्त SRI हैश जनरेटर

बाहरी स्क्रिप्ट के लिए Subresource Integrity हैश बनाएँ। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।

अपडेट किया गया

Share:
Home/Security Tools/SRI Generator

SRI Generator

Generate Subresource Integrity (SRI) hashes for scripts and stylesheets to protect against CDN compromises and supply-chain attacks.

SRI Hash Generator

Drag & drop JS/CSS files or click to browse

अक्सर पूछे जाने वाले प्रश्न

SRI हैश जनरेटर क्या है?

SRI हैश जनरेटर एक मुफ़्त ऑनलाइन टूल है जो CDN के साथ छेड़छाड़ से बचाने के लिए बाहरी स्क्रिप्ट और स्टाइलशीट के लिए Subresource Integrity हैश बनाता है।

क्या SRI हैश जनरेटर मुफ़्त है?

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

मुझे SRI हैश की आवश्यकता क्यों है?

SRI हैश यह सुनिश्चित करते हैं कि CDN से लोड की गई बाहरी स्क्रिप्ट के साथ छेड़छाड़ नहीं की गई है। यदि फ़ाइल बदलती है, तो ब्राउज़र उसे चलने से रोक देगा।

क्या इस टूल के साथ मेरा डेटा सुरक्षित है?

बिल्कुल। SRI हैश जनरेटर सब कुछ आपके ब्राउज़र में क्लाइंट-साइड पर ही प्रोसेस करता है। कोई भी डेटा किसी सर्वर पर अपलोड या संग्रहीत नहीं किया जाता। आपकी सामग्री हर समय आपके डिवाइस पर निजी बनी रहती है।

क्या SRI हैश जनरेटर मोबाइल डिवाइस पर काम करता है?

हाँ, SRI हैश जनरेटर पूरी तरह से रिस्पॉन्सिव है और स्मार्टफ़ोन तथा टैबलेट पर काम करता है। आप इसे किसी भी आधुनिक वेब ब्राउज़र वाले डिवाइस पर इस्तेमाल कर सकते हैं -- किसी ऐप को डाउनलोड करने की ज़रूरत नहीं।

क्या इस टूल का उपयोग करने के लिए मुझे खाता बनाना होगा?

किसी खाते या पंजीकरण की आवश्यकता नहीं है। बस अपने ब्राउज़र में SRI हैश जनरेटर खोलें और तुरंत इसका उपयोग शुरू करें। कोई साइन-अप बाधा या उपयोग प्रतिबंध नहीं है।

मैं SRI हैश जनरेटर का उपयोग कैसे करूँ?

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

कौन-कौन से ब्राउज़र समर्थित हैं?

SRI हैश जनरेटर Chrome, Firefox, Safari, Edge और Opera सहित सभी आधुनिक ब्राउज़रों में काम करता है। सर्वोत्तम अनुभव के लिए, अपने पसंदीदा ब्राउज़र के नवीनतम संस्करण का उपयोग करें।

SRI हैश के लिए SHA-256, SHA-384, और SHA-512 में क्या अंतर है?

ये तीनों SHA-2 हैश फ़ंक्शन हैं और Subresource Integrity के लिए तीनों ही मान्य हैं; फ़र्क़ डाइजेस्ट की लंबाई और उससे मिलने वाले सुरक्षा मार्जिन का है। SHA-256 एक 256-बिट हैश बनाता है, SHA-384 एक 384-बिट हैश, और SHA-512 एक 512-बिट हैश, इसलिए integrity एट्रिब्यूट धीरे-धीरे लंबा होता जाता है। W3C स्पेसिफ़िकेशन SHA-384 को अनुशंसित डिफ़ॉल्ट बताता है क्योंकि यह एक मज़बूत सुरक्षा मार्जिन और एट्रिब्यूट की लंबाई के बीच संतुलन बनाता है, यही वजह है कि यह टूल इसे डिफ़ॉल्ट रूप से चुनता है। हालांकि आप इसी तक सीमित नहीं हैं: आप एक ही एट्रिब्यूट में कई हैश भी लिस्ट कर सकते हैं, जैसे integrity="sha384-... sha512-...", और ब्राउज़र जिस सबसे मज़बूत एल्गोरिद्म को समझता हो उसे इस्तेमाल करेगा। यहां अपनी फ़ाइल जनरेट करें और यह टूल एक साथ तीनों डाइजेस्ट लौटाता है, जिसमें आपके चुने गए एल्गोरिद्म से मेल खाने वाले को प्राइमरी के तौर पर चिह्नित किया जाता है ताकि आप जो चाहें कॉपी कर सकें।

एक SRI-सुरक्षित स्क्रिप्ट को crossorigin="anonymous" एट्रिब्यूट की ज़रूरत क्यों होती है?

Subresource Integrity केवल उसी फ़ाइल को वेरिफ़ाई कर सकता है जिसे पढ़ने की अनुमति ब्राउज़र के पास हो, और आपके पेज से अलग ओरिजिन से लोड किए गए किसी रिसोर्स के लिए यह अनुमति CORS से मिलती है। crossorigin="anonymous" जोड़ने से ब्राउज़र एक एनॉनिमस क्रॉस-ओरिजिन रिक्वेस्ट भेजता है, और जब तक होस्ट सही CORS हेडर लौटाता है, तब तक रिस्पॉन्स पढ़ने योग्य बन जाता है ताकि उसका हैश निकाला और तुलना की जा सके। अगर यह एट्रिब्यूट न हो, तो ब्राउज़र क्रॉस-ओरिजिन रिस्पॉन्स को अपारदर्शी (opaque) मानता है: वह बाइट्स नहीं पढ़ पाता, इंटीग्रिटी हैश वेरिफ़ाई नहीं कर पाता, और रिसोर्स को लोड करने से इनकार कर देता है, जिससे आपकी स्क्रिप्ट या स्टाइलशीट चुपचाप फेल हो जाती है। यही वजह है कि यह टूल जो भी स्क्रिप्ट और लिंक टैग जनरेट करता है, उनमें crossorigin="anonymous" पहले से शामिल होता है। अपनी फ़ाइल या URL पेस्ट करें, तैयार टैग कॉपी करें, और CORS एट्रिब्यूट अपने आप संभल जाता है।

जब SRI हैश फ़ाइल से मेल नहीं खाता, तो ब्राउज़र में क्या होता है?

जब आप एक integrity एट्रिब्यूट जोड़ते हैं, तो ब्राउज़र रिसोर्स डाउनलोड करता है, बताए गए एल्गोरिद्म से उसके बाइट्स हैश करता है, और परिणाम की तुलना आपके द्वारा दिए गए वैल्यू से करता है। अगर वे मेल खाते हैं, तो फ़ाइल सामान्य रूप से चलती है। अगर किसी भी वजह से वे अलग हों — फ़ाइल बदली गई, रिप्लेस की गई, या CDN के साथ छेड़छाड़ हुई — तो ब्राउज़र उसे पूरी तरह इस्तेमाल करने से इनकार कर देता है: ब्लॉक की गई स्क्रिप्ट कभी नहीं चलती और ब्लॉक की गई स्टाइलशीट कभी लागू नहीं होती, और कंसोल में एक नेटवर्क एरर रिपोर्ट होता है। यह सख्त विफलता ही पूरा मकसद है, जो एक चुपचाप हो जाने वाली सप्लाई-चेन छेड़छाड़ को एक दिखने वाले, लागू किए गए ब्लॉक में बदल देती है, न कि छेड़छाड़ किए गए कोड को चलने देती है। क्योंकि ब्लॉक हुआ रिसोर्स पेज को तोड़ सकता है, यह टूल एक onerror फ़ॉलबैक भी दे सकता है जो एक लोकल कॉपी लगा देता है, ताकि पेज धीरे-धीरे डिग्रेड हो। इस सुरक्षा को चालू करने के लिए ऊपर एक हैश जनरेट करें और उसे अपने टैग में जोड़ें।

जब CDN फ़ाइल बदलती है, तो मैं SRI हैश को कैसे अपडेट करूं?

एक SRI हैश फ़ाइल के एक बिल्कुल तय स्नैपशॉट को वेरिफ़ाई करता है, इसलिए कोई भी वैध बदलाव जान-बूझकर उसे तोड़ देता है। अगर कोई लाइब्रेरी नया वर्ज़न जारी करती है, CDN एक पैच किया गया बिल्ड सर्व करता है, या आप किसी पिन की गई URL को अपडेट करते हैं, तो बाइट्स अलग हो जाते हैं और पुराना हैश अब मेल नहीं खाएगा, जिससे ब्राउज़र उस रिसोर्स को तब तक ब्लॉक करता रहेगा जब तक आप उसे दोबारा जनरेट नहीं करते। इसका हल है नई फ़ाइल के लिए एक ताज़ा हैश निकालना और अपने integrity एट्रिब्यूट में वैल्यू को बदल देना। अचानक टूट-फूट से बचने के लिए, एक बदलती रहने वाली latest URL के बजाय किसी वर्ज़न वाली, अपरिवर्तनीय URL पर पिन करें, ताकि फ़ाइल तभी बदले जब आप जान-बूझकर नए वर्ज़न की ओर इशारा करें। ऐसा होने पर, अपडेट की गई फ़ाइल या उसकी URL इस टूल में पेस्ट करें, नया हैश जनरेट करें, और रिप्लेसमेंट टैग सीधे अपने HTML में कॉपी कर लें।

बैच CDN मोड कभी-कभी रिमोट फ़ाइल फ़ेच करने में फेल क्यों हो जाता है?

कॉन्टेंट पेस्ट करना या फ़ाइल अपलोड करना पूरी तरह से आपके ब्राउज़र में हैश होता है, इसलिए कुछ भी आपकी मशीन से बाहर नहीं जाता। बैच मोड अलग है: किसी रिमोट ऐसेट को हैश करने के लिए पहले उस फ़ाइल को डाउनलोड करना ज़रूरी होता है, और वह फ़ेच एक असली क्रॉस-ओरिजिन रिक्वेस्ट होती है जो होस्ट की CORS पॉलिसी के अधीन होती है। अगर CDN या सर्वर पर्याप्त CORS हेडर नहीं लौटाता, तो ब्राउज़र उस रिस्पॉन्स को ब्लॉक कर देता है जिसे आपका कोड पढ़ नहीं सकता, और फ़ेच फेल हो जाता है भले ही फ़ाइल मौजूद हो और URL सही हो। कुछ होस्ट ऑटोमेटेड रिक्वेस्ट को रेट-लिमिट भी करते हैं या मना कर देते हैं। यह रिमोट सर्वर की एक सीमा है, न कि हैश की, क्योंकि वही फ़ाइल पेस्ट करने पर सही से हैश हो जाती है। पक्के नतीजों के लिए, फ़ाइल डाउनलोड करें और पेस्ट या अपलोड टैब का इस्तेमाल करें। यहां लोकप्रिय लाइब्रेरी के लिए बैच प्रीसेट आज़माएं, और जब कोई URL ब्लॉक हो जाए तो पेस्ट मोड पर वापस जाएं।

संबंधित टूल

मुफ़्त हैश वेरिफ़ायर ऑनलाइन

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

मुफ़्त सिक्योरिटी हेडर विश्लेषक

वेबसाइट के सिक्योरिटी हेडर जाँचें और सुधार के सुझाव पाएँ। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।

मुफ़्त एन्क्रिप्शन/डिक्रिप्शन टूल

AES, DES और अन्य एल्गोरिद्म से टेक्स्ट एन्क्रिप्ट और डिक्रिप्ट करें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।

मुफ़्त HMAC जनरेटर ऑनलाइन

कई हैशिंग एल्गोरिद्म का उपयोग करके API प्रमाणीकरण के लिए HMAC हस्ताक्षर बनाएँ। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।

SRI हैश जेनरेटर के बारे में

SRI हैश जेनरेटर उन बाहरी JavaScript और CSS फ़ाइलों के लिए Subresource Integrity हैश बनाता है जिन्हें आपके पेज किसी CDN या थर्ड-पार्टी होस्ट से लोड करते हैं। फ़ाइल की कॉन्टेंट पेस्ट करें, फ़ाइल ड्रॉप करें, या URL की एक लिस्ट कतार में लगाएं, और यह टूल क्रिप्टोग्राफ़िक इंटीग्रिटी वैल्यू के साथ-साथ एक तैयार <script> या <link> टैग लौटाता है, जिसे आप सीधे कॉपी-पेस्ट कर सकते हैं। यह उन फ्रंट-एंड डेवलपर्स, साइट ओनर्स और सिक्योरिटी इंजीनियर्स के लिए बनाया गया है जो jQuery, Bootstrap, या React जैसी लाइब्रेरी किसी पब्लिक CDN से इस्तेमाल करते हैं और चाहते हैं कि ब्राउज़र किसी भी छेड़छाड़ की गई फ़ाइल को चलाने से मना कर दे।

हैशिंग आपके ब्राउज़र में ही Web Crypto API के ज़रिए होती है। जब आप कॉन्टेंट पेस्ट करते हैं या फ़ाइल अपलोड करते हैं, तो कुछ भी कहीं नहीं भेजा जाता — न कोई अकाउंट चाहिए, न कोई अपलोड स्टेप, और न ही आपके कोड की कोई सर्वर कॉपी बनती है। बैच मोड इसका एकमात्र अपवाद है: किसी रिमोट URL को हैश करने के लिए उसे पहले फ़ेच करना ज़रूरी होता है, इसलिए वे रिक्वेस्ट आपकी मशीन से बाहर जाती हैं और होस्ट की CORS पॉलिसी द्वारा ब्लॉक हो सकती हैं। पक्के नतीजों के लिए, फ़ेच करने के बजाय कॉन्टेंट पेस्ट या अपलोड करें।

Subresource Integrity क्या है और यह क्यों मायने रखता है

Subresource Integrity W3C द्वारा परिभाषित एक ब्राउज़र सिक्योरिटी फ़ीचर है। आप किसी स्क्रिप्ट या स्टाइलशीट टैग में एक integrity एट्रिब्यूट जोड़ते हैं जिसमें एक base64 हैश होता है। ब्राउज़र फ़ाइल डाउनलोड करता है, उसे हैश करता है, और दोनों हैश की तुलना करता है: अगर हैश मेल खाते हैं तो रिसोर्स चलता है, और अगर वे अलग हों — क्योंकि फ़ाइल को बदला गया, रिप्लेस किया गया, या CDN के साथ छेड़छाड़ हुई — तो ब्राउज़र उसे पूरी तरह ब्लॉक कर देता है।

यह सुरक्षा इसलिए मायने रखती है क्योंकि एक भी छेड़छाड़ की गई लाइब्रेरी उस हर पेज पर मनमाना कोड चला सकती है जो उसे इस्तेमाल करता है। CDN और npm-आधारित ऐसेट्स पर सप्लाई-चेन अटैक एक बार-बार होने वाला खतरा हैं, और SRI एक चुपचाप हो जाने वाली छेड़छाड़ को एक स्पष्ट, ब्राउज़र द्वारा लागू की गई विफलता में बदल देता है। एक बात ध्यान रखें: SRI एक तय स्नैपशॉट को वेरिफ़ाई करता है, इसलिए जब भी फ़ाइल वैध रूप से बदले (नया वर्ज़न, पैच किया गया बिल्ड), हैश को दोबारा जनरेट करना ज़रूरी होता है, और इसे उन इनलाइन स्क्रिप्ट्स पर इस्तेमाल नहीं किया जा सकता जिनकी कॉन्टेंट डायनामिक होती है।

हैश कैसे जनरेट करें

  • कॉन्टेंट पेस्ट करें — रॉ JS या CSS डालें, कोई एल्गोरिद्म चुनें, और जनरेट करें। पेस्ट की गई कॉन्टेंट आउटपुट में inline-content के तौर पर लेबल होती है; इसे अपने असली src/href से बदल दें।
  • फ़ाइलें अपलोड करें — एक या एक से ज़्यादा .js, .css, या .mjs फ़ाइलों को ड्रैग-एंड-ड्रॉप करें या ब्राउज़ करें। हर फ़ाइल लोकली हैश होती है और उसका बाइट साइज़ दिखाया जाता है।
  • बैच / CDN मोड — एक साथ कई रिमोट ऐसेट्स को फ़ेच और हैश करने के लिए URL की एक लिस्ट (एक लाइन में एक) पेस्ट करें। यह टूल संदर्भ के लिए jQuery, Bootstrap, React, Vue, Alpine.js, Axios, और Font Awesome जैसी लोकप्रिय लाइब्रेरी के प्रीसेट भी लिस्ट करता है।

हर नतीजे में तीनों हैश शामिल होते हैं — SHA-256, SHA-384, और SHA-512 — ताकि आप इनमें से कोई भी कॉपी कर सकें, और जो आपके चुने गए एल्गोरिद्म से मेल खाता है उसे प्राइमरी के तौर पर चिह्नित किया जाता है।

एल्गोरिद्म और crossorigin एट्रिब्यूट चुनना

  • SHA-384 डिफ़ॉल्ट और अनुशंसित विकल्प है, W3C स्पेसिफ़िकेशन के तहत — यह मज़बूती और लंबाई के बीच एक समझदार संतुलन है। SHA-256 और SHA-512 भी उतने ही मान्य हैं, और आप एक ही एट्रिब्यूट में कई हैश लिस्ट कर सकते हैं (integrity="sha384-... sha512-...") ताकि ब्राउज़र जिस सबसे मज़बूत एल्गोरिद्म को समझता हो उसे इस्तेमाल करे।
  • crossorigin="anonymous" ज़रूरी है। क्रॉस-ओरिजिन रिसोर्सेज़ को इंटीग्रिटी चेक के लिए पढ़ने योग्य बनने हेतु CORS चाहिए होता है, इसलिए जनरेट किए गए टैग में यह हमेशा शामिल रहता है। इसके बिना, ब्राउज़र हैश वेरिफ़ाई नहीं कर पाता और रिसोर्स लोड होने में फेल हो जाता है।
  • एक वैकल्पिक फ़ॉलबैक पैटर्न में onerror हैंडलर जोड़ा जा सकता है जो इंटीग्रिटी चेक द्वारा CDN फ़ाइल ब्लॉक होने पर एक लोकल कॉपी को इस्तेमाल कर लेता है, ताकि छेड़छाड़ की गई या अनुपलब्ध ऐसेट पेज को तोड़ने के बजाय धीरे-धीरे डिग्रेड हो।

ब्राउज़र सपोर्ट

SRI सभी मौजूदा ब्राउज़र्स में सपोर्टेड है: Chrome 45+, Firefox 43+, Safari 11.1+, Edge 17+, और Opera 32+। Internet Explorer 11 इस एट्रिब्यूट को नज़रअंदाज़ कर देता है और रिसोर्स को बिना वेरिफ़ाई किए लोड कर लेता है, इसलिए SRI को आधुनिक विज़िटर्स के लिए एक मज़बूत सुरक्षा परत मानें, न कि एक सार्वभौमिक गारंटी। ऊपर अपने हैश जनरेट करें, तैयार टैग कॉपी करें, और उसे सीधे अपने HTML में पेस्ट कर दें।