इसका इस्तेमाल कैसे करें
- स्क्रिप्ट या स्टाइलशीट का टेक्स्ट फ़ाइल का टेक्स्ट में चिपकाएँ, या या एक फ़ाइल के नीचे फ़ाइल चुनें।
- एल्गोरिदम चुनें। हर एल्गोरिदम के लिए एक मान लिखने के लिए तीनों चुनें।
- फ़ाइल का पता वैसे ही लिखें जैसे पेज उसे लोड करेगा। चिपकाने वाला एलिमेंट नीचे दिखता है।
- इंटेग्रिटी मान या चिपकाने वाला एलिमेंट कॉपी करके अपने पेज में चिपकाएँ। अपने पास के मान की जाँच के लिए उसे जाँचने वाला इंटेग्रिटी मान के नीचे चिपकाएँ।
मान कैसे बनता है
इंटेग्रिटी मान एक हैश एल्गोरिदम का नाम है, एक डैश, और फ़ाइल का डाइजेस्ट base64 में। ब्राउज़र फ़ाइल के ठीक बाइट हैश करता है, इसलिए एक बाइट बदलने पर मान बदल जाता है। हर अनुरूप ब्राउज़र sha256, sha384 और sha512 का समर्थन करता है (SRI धारा 3.2)। Base64 RFC 4648 की वर्णमाला इस्तेमाल करता है, और अंत में पैडिंग के लिए = चिह्न लगता है (धारा 4)।
स्पेस से अलग कई हिस्सों वाला मान स्वीकार होता है (धारा 3.2.1)। ब्राउज़र अपने जाने हुए हिस्सों में से सबसे मजबूत एल्गोरिदम इस्तेमाल करता है, इसलिए sha512, sha256 पर भारी पड़ता है।
इंटेग्रिटी = एल्गोरिदम + "-" + base64(डाइजेस्ट(बाइट))
- sha256: डैश के बाद base64 के 44 अक्षर।
- sha384: डैश के बाद 64 अक्षर।
- sha512: डैश के बाद 88 अक्षर।
जाँच क्या करती है और क्या नहीं
जाँच तब पास होती है जब फ़ाइल के बाइट विशेषता में सबसे मजबूत एल्गोरिदम के किसी एक मान से मेल खाते हैं (SRI धारा 3.3)। जो हिस्सा ब्राउज़र नहीं जानता, वह छोड़ दिया जाता है। कोई हिस्सा न बचे तो जाँच बिना तुलना के पास हो जाती है, इसलिए यह टूल उस स्थिति को अनजाँचा बताता है।
मान यह नहीं बताता कि फ़ाइल कहाँ से आई। वह सिर्फ यह साबित करता है कि फ़ाइल के वही बाइट हैं जो हैश हुए थे। फ़ाइल बदलने पर मान फिर बनाएँ, उदाहरण के लिए लाइब्रेरी अपडेट के बाद, और मान को एलिमेंट के साथ उसी जगह रखें।
टेक्स्ट abc
टेक्स्ट abc UTF-8 में तीन बाइट 61 62 63 हैं। sha256 चुनें और टेक्स्ट बॉक्स में abc लिखें। टेक्स्ट का इंटेग्रिटी मान तालिका में है, और चिपकाने वाले एलिमेंट में वह crossorigin को anonymous के साथ रहता है।
| एल्गोरिदम | abc का इंटेग्रिटी मान |
|---|---|
| sha256 | sha256-ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0= |
| sha384 | sha384-ywB1P0WjXou1oD1pmsZQBycsMqsO3tFjGotgWkP/W+2AhgcroefMI1i67KE0yCWn |
अक्सर पूछे जाने वाले सवाल
क्या फ़ाइल बदलने पर मान भी बदलना होगा?
हाँ। मान बाइट के एक तय क्रम के लिए है, इसलिए लाइब्रेरी का अपडेट, एक बदला हुआ स्पेस भी, अलग मान देता है। जब तक विशेषता में नया मान न हो, जाँच फेल होती है।
कौन सा एल्गोरिदम चुनना चाहिए?
हर ब्राउज़र तीनों का समर्थन करता है (SRI धारा 3.2)। sha384, sha256 से मजबूत डाइजेस्ट है और sha512 से छोटा मान। हर एक का मान लिखने के लिए तीनों चुनें, और ब्राउज़र सबसे मजबूत की जाँच करेगा।
मान में एल्गोरिदम का नाम और डैश क्यों है?
नाम बताता है कि ब्राउज़र कौन सा डाइजेस्ट निकाले। डैश नाम को खत्म करता है, क्योंकि नामों में डैश नहीं होता, जबकि base64 मान में URL-सुरक्षित वर्णमाला की वजह से डैश हो सकते हैं, जैसा SRI धारा 3.5 अनुमति देती है।
क्या यह टूल मेरी फ़ाइल किसी सर्वर को भेजता है?
नहीं। आपका ब्राउज़र फ़ाइल पढ़ता है और ब्राउज़र की डाइजेस्ट विधि (crypto.subtle) से उसे हैश करता है। पेज कोई नेटवर्क अनुरोध नहीं करता, और आप जो लिखें या चुनें, वह सहेजा नहीं जाता।
चिपकाने वाले एलिमेंट में crossorigin क्यों है?
दूसरे ओरिजिन के संसाधन के लिए SRI को CORS चाहिए (धारा 5.3), और anonymous वाला crossorigin ब्राउज़र से CORS इस्तेमाल करने को कहता है। एलिमेंट इसे स्क्रिप्ट और स्टाइलशीट दोनों के लिए रखता है।
स्रोत
- W3C (अंग्रेजी में): Subresource Integrity (Working Draft, 20 March 2026): धारा 3.2, 3.3, 3.5 और 5.3
- RFC 4648 (अंग्रेजी में): The Base16, Base32, and Base64 Data Encodings, धारा 4
- MDN (अंग्रेजी में): SubtleCrypto.digest()
आँकड़े और टेक्स्ट आखिरी बार मंगलवार, 10 नवंबर 2026 को जाँचे गए।