सीक्रेट रिडैक्टर
एक सीक्रेट रिडैक्टर उस टेक्स्ट को स्कैन करता है जिसे आप साझा करने वाले हैं — एक लॉग अंश, एक सहायता टिकट, एक चैट संदेश, एक कॉन्फ़िग डंप — और किसी और के पढ़ने से पहले उसके अंदर छिपे क्रेडेंशियल हटा देता है। यहाँ टेक्स्ट चिपकाएँ या फ़ाइल छोड़ें, और यह प्रदाता API कुंजियाँ, एक्सेस टोकन, निजी कुंजी ब्लॉक, JSON Web Token, कार्ड नंबर और ईमेल पते खोजेगा, हर हिट को तालिका में मास्क करके दिखाएगा, और एक साफ़ प्रति बनाएगा जिसमें हर रहस्य [REDACTED] से बदल दिया गया है। सब कुछ 100% आपके ब्राउज़र में चलता है: कुछ भी अपलोड नहीं होता, कुछ भी संग्रहीत नहीं होता, और टेक्स्ट का विश्लेषण कोई नेटवर्क अनुरोध नहीं करता। साथी मार्गदर्शिका, चिपकाने से पहले अपने रहस्य रिडैक्ट करें, बताती है कि स्कैनर क्या पकड़ सकते हैं और क्या नहीं; ब्राउज़र कैप्चर के लिए HAR विश्लेषक का और कॉन्फ़िग फ़ाइलों के लिए .env पार्सर का उपयोग करें।
अंतिम अपडेट:
या इस बॉक्स में कहीं भी एक टेक्स्ट फ़ाइल छोड़ें। सीमा: 2 MB। फ़ाइल केवल इस डिवाइस पर पढ़ी जाती है और कभी अपलोड नहीं होती।
स्कैन परिणाम
हाइलाइट किया गया पूर्वावलोकन (मास्क किया हुआ)
निष्कर्ष
स्कैनर क्या खोजता है — और यह कैसे तय करता है
अधिकांश रहस्य हमलों से नहीं, मदद करने की इच्छा से लीक होते हैं। कोई लॉग को टिकट में चिपकाता है, कॉन्फ़िग फ़ाइल को चैट में, curl कमांड को फ़ोरम पोस्ट में — और जो क्रेडेंशियल संयोग से अंदर था, वह उसके साथ यात्रा करता है, उन प्रणालियों में जो टेक्स्ट को अनुक्रमित, अग्रेषित और हमेशा के लिए संग्रहीत करती हैं। यह पृष्ठ उस चिपकाने से ठीक पहले का विराम है। टेक्स्ट टाइप करें या छोड़ें, और स्कैन आपके टाइप करते ही चलता है: एक गिनती पट्टी प्रकार के अनुसार निष्कर्षों को जोड़ती है, पूर्वावलोकन हर हिट को उसके स्थान पर हाइलाइट करके उसका मान मास्क करता है, निष्कर्ष तालिका प्रकार, मास्क किया हुआ रूप और पंक्ति संख्या सूचीबद्ध करती है, और नीचे की रिडैक्ट की हुई प्रति हर हिट को एकमात्र चिह्न [REDACTED] से बदल देती है, कॉपी करने या .txt फ़ाइल के रूप में डाउनलोड करने के लिए तैयार।
पहचान की पहली परत आकार है। असली प्रदाताओं के असली क्रेडेंशियल के पहचानने योग्य आकार होते हैं, और स्कैनर मुख्य आकारों को जानता है: AWS एक्सेस कुंजियाँ, क्लासिक और फ़ाइन-ग्रेन्ड दोनों रूपों में GitHub टोकन, Stripe गुप्त और प्रतिबंधित कुंजियाँ, OpenAI प्रोजेक्ट और सामान्य कुंजियाँ, Anthropic कुंजियाँ, Google API कुंजियाँ और Slack टोकन। एक निजी कुंजी ब्लॉक उसकी BEGIN पंक्ति से END पंक्ति तक, एक ही संपूर्ण हिट के रूप में पकड़ा जाता है, क्योंकि कुंजी ब्लॉक के केवल एक हिस्से को रिडैक्ट करने से एक उपयोग योग्य कुंजी बची रहती है। JSON Web Token उनकी तीन-खंड base64url संरचना से पहचाने जाते हैं, और कार्ड नंबरों को चिह्नित होने से पहले Luhn चेकसम पास करना होता है, ताकि साधारण ऑर्डर नंबर और टाइमस्टैम्प शांत रहें।
एंट्रॉपी, प्लेसहोल्डर और ईमानदार सीमाएँ
दूसरी परत उन रहस्यों को कवर करती है जिनका कोई प्रदाता आकार नहीं है: password = …, api_key: … या client_secret = … जैसे असाइनमेंट। एक नंगा कीवर्ड कुछ भी साबित नहीं करता, इसलिए मान को दो और द्वार पार करने होते हैं — कम से कम बारह वर्ण, और प्रति वर्ण कम से कम 3.2 बिट की शैनन एंट्रॉपी, जिसे यादृच्छिक कुंजियाँ आसानी से पास करती हैं और साधारण शब्द विफल होते हैं। प्लेसहोल्डर मान डिज़ाइन से बाहर रखे गए हैं: example, test, dummy, xxx, your-, placeholder या changeme सहित कुछ भी दस्तावेज़ है, क्रेडेंशियल नहीं, और उसे चिह्नित करना आपको स्कैनर को नज़रअंदाज़ करने का प्रशिक्षण देगा। जहाँ आकार ओवरलैप होते हैं, विशिष्ट पैटर्न जीतता है: एक वेरिएबल को सौंपी गई Stripe कुंजी एक बार, Stripe कुंजी के रूप में रिपोर्ट की जाती है।
दो निष्कर्ष प्रकार प्रणालियों के बजाय लोगों की रक्षा करते हैं। ईमेल पते व्यक्तिगत डेटा के रूप में चिह्नित किए जाते हैं, क्योंकि ग्राहक पतों से भरा टिकट एक गोपनीयता घटना है, भले ही कोई पासवर्ड न दिखे। कार्ड नंबर केवल तभी चिह्नित होते हैं जब अंक Luhn पास करते हैं, वह चेकसम जो हर असली कार्ड नंबर में अंतर्निहित है — वही परीक्षण जो स्कैनर को उन चालान नंबरों, ट्रैकिंग कोड और Unix टाइमस्टैम्प को नज़रअंदाज़ करने देता है जो केवल लंबे और संख्यात्मक दिखते हैं। स्क्रीन पर, हर मान अधिकतम उसके पहले चार वर्णों तक मास्क किया जाता है, ताकि कंधे के ऊपर से झाँकने वाला या स्क्रीनशॉट रहस्य का प्रकार और स्थान सीख ले, लेकिन रहस्य स्वयं कभी नहीं; छोटे मान कुछ भी नहीं दिखाते। पूरा मान केवल आपके मूल टेक्स्ट में मौजूद है, जो पृष्ठ को कभी नहीं छोड़ता।
रिडैक्टर को गारंटी के रूप में नहीं, एक सुरक्षित साझा आदत के एक कदम के रूप में उपयोग करें। स्थानीय रूप से रिडैक्ट करें, रिडैक्ट की हुई प्रति साझा करें, और असली रहस्य — जब किसी रहस्य को वास्तव में हाथ बदलना हो — एक सीक्रेट मैनेजर या समाप्त होने वाले साझा लिंक के माध्यम से भेजें, कभी भी रिडैक्ट किए हुए टेक्स्ट वाले उसी टिकट या चैट से नहीं। यदि एक असली क्रेडेंशियल पहले ही कहीं बिना रिडैक्ट किए चिपकाया जा चुका है, तो संदेश हटाना पर्याप्त नहीं है: प्रतियाँ, अनुक्रमणिकाएँ और सूचनाएँ पहले से मौजूद हो सकती हैं, इसलिए उस क्रेडेंशियल को रोटेट करें और पुराने को सार्वजनिक मानें। साथी लेख, चिपकाने से पहले अपने रहस्य रिडैक्ट करें, उस प्रवाह को पूरी तरह से चलता है; HAR विश्लेषक ब्राउज़र कैप्चर के लिए वही काम करता है, और .env पार्सर कॉन्फ़िग फ़ाइलों को आपके कमिट करने से पहले जाँचता है।
सरल शब्दों में पहचान लाइब्रेरी
| AWS एक्सेस कुंजी | AKIA या ASIA के बाद ठीक 16 बड़े अक्षर या अंक — दीर्घकालिक और अस्थायी AWS एक्सेस कुंजी ID का आकार। |
| GitHub टोकन | ghp_, gho_, ghu_, ghs_ और ghr_ उपसर्ग जिनके बाद कम से कम 36 और वर्ण, साथ ही फ़ाइन-ग्रेन्ड github_pat_ रूप। |
| Stripe कुंजी | sk_ या rk_ के बाद live_ या test_ और कम से कम 16 अक्षरांकीय वर्ण — गुप्त और प्रतिबंधित कुंजियाँ, परीक्षण मोड सहित, क्योंकि परीक्षण कुंजियाँ खाता संरचना और आदतें प्रकट करती हैं। |
| OpenAI और Anthropic कुंजियाँ | sk-proj- प्रोजेक्ट कुंजियाँ और 32 या अधिक वर्णों की सामान्य sk- कुंजियाँ OpenAI के रूप में गिनी जाती हैं; sk-ant- कुंजियाँ Anthropic के रूप में रिपोर्ट की जाती हैं, एक अलग प्रकार जिसका अपना रोटेशन मार्ग है। |
| Google API कुंजी और Slack टोकन | Google के लिए AIza के बाद 35 वर्ण; Slack के बॉट, ऐप, उपयोगकर्ता, रीफ़्रेश और सत्र टोकन के लिए xoxb, xoxa, xoxp, xoxr और xoxs उपसर्ग। |
| निजी कुंजी ब्लॉक | एक संपूर्ण PEM ब्लॉक, -----BEGIN PRIVATE KEY----- (RSA, EC, OpenSSH और PGP रूपों सहित) से मिलान END पंक्ति तक, एक हिट के रूप में रिपोर्ट और रिडैक्ट किया गया। |
| JSON Web Token | बिंदुओं से अलग तीन base64url खंड, जिनमें से पहले दो eyJ से शुरू होते हैं — JSON हेडर और पेलोड का एन्कोड किया हुआ रूप जिससे हर JWT शुरू होता है। |
| सामान्य असाइनमेंट | api_key, secret, token, password, passwd, auth_token, access_token या client_secret जैसे नामों को सौंपे गए मान, केवल तभी चिह्नित जब मान कम से कम 12 वर्ण हो और उसकी शैनन एंट्रॉपी 3.2 तक पहुँचे; दस्तावेज़ित प्लेसहोल्डर कभी चिह्नित नहीं होते। |
| ईमेल पता | साधारण ईमेल पते, व्यक्तिगत डेटा (PII) के रूप में रिपोर्ट किए गए ताकि ग्राहक या कर्मचारी पतों की सामूहिक चिपकाइयाँ फैलने से पहले पकड़ी जाएँ। |
| कार्ड नंबर | 13 से 19 अंकों के अनुक्रम, रिक्त स्थान और डैश अनुमत, केवल तभी चिह्नित जब वे Luhn चेकसम पास करें जिसे हर असली कार्ड नंबर संतुष्ट करता है। |
| मास्किंग और चिह्न | स्क्रीन पर एक मान अधिकतम उसके पहले चार वर्ण और एक दीर्घवृत्त दिखाता है, और चार वर्ण या उससे कम के मानों के लिए कुछ नहीं। रिडैक्ट की हुई प्रति में हर हिट एकमात्र चिह्न [REDACTED] बन जाता है; प्रकार निष्कर्ष तालिका में दृश्यमान रहता है, कभी इनलाइन नहीं। |
अक्सर पूछे जाने वाले प्रश्न
क्या मेरा टेक्स्ट कहीं अपलोड या संग्रहीत होता है?
नहीं। स्कैन इस पृष्ठ में, आपके डिवाइस पर चलता है: कुछ भी अपलोड, प्रसारित या संग्रहीत नहीं होता, और स्कैनिंग कोई नेटवर्क अनुरोध नहीं करती। यह एक जानबूझकर बनाया गया डिज़ाइन नियम है — एक उपकरण जो रहस्यों को हटाने के लिए आपको रहस्यों से भरा टेक्स्ट अपलोड करने को कहे, वह समस्या का हिस्सा होगा।
यह किस प्रकार के रहस्य खोज सकता है?
प्रदाता-आकार के क्रेडेंशियल — AWS एक्सेस कुंजियाँ और GitHub, Stripe, OpenAI, Anthropic, Google और Slack की कुंजियाँ और टोकन — साथ ही संपूर्ण निजी कुंजी ब्लॉक, JSON Web Token, password या api_key जैसे नामों को सौंपे गए उच्च-एंट्रॉपी मान, ईमेल पते, और Luhn चेकसम पास करने वाले कार्ड नंबर। ऊपर की तथ्य तालिका हर पैटर्न को सरल शब्दों में सूचीबद्ध करती है।
इसने वह रहस्य क्यों छोड़ा जो मुझे अपने टेक्स्ट में दिखता है?
तीन ईमानदार कारण। मान पंक्तियों में बँटा या लिपटा हो सकता है, ताकि कोई एकल आकार मेल न खाए। यह एक कम-एंट्रॉपी मानव पासवर्ड हो सकता है जो ऐसे नाम को सौंपा गया है जिसे सामान्य नियम नहीं जानता। या यह एक ऐसा प्रारूप हो सकता है जिसे अभी कोई पैटर्न कवर नहीं करता — एक डेटाबेस कनेक्शन स्ट्रिंग, एक कुकी मान, एक बेसिक-ऑथ URL। स्कैनर सामान्य, अच्छी तरह दस्तावेज़ित आकारों को निर्धारणात्मक रूप से पकड़ता है; यह एक सुरक्षा जाल है, इस बात का प्रमाण नहीं कि टेक्स्ट साफ़ है, इसलिए साझा करने से पहले पूर्वावलोकन स्वयं देखें।
इसने ऐसी चीज़ को क्यों चिह्नित किया जो असली रहस्य नहीं है?
आमतौर पर क्योंकि मान ईमानदारी से वैसा आकार रखता है: प्लेसहोल्डर शब्दावली के बिना एक यादृच्छिक-दिखने वाला परीक्षण मान, आंतरिक दस्तावेज़ का एक नमूना टोकन, या फ़्रंट-एंड उदाहरण के रूप में उपयोग किया गया JWT। साझा करने से पहले निष्कर्ष तालिका देखें — एक झूठा सकारात्मक एक नज़र की कीमत है, जबकि एक छूटा हुआ निष्कर्ष एक रोटेशन की कीमत है। example, test, dummy, xxx, your-, placeholder या changeme सहित मान कभी चिह्नित नहीं होते, इसलिए नमूनों को इस तरह चिह्नित करना शोर को कम रखता है।
यदि मूल पहले ही लीक हो चुका है, तो क्या रिडैक्ट करना रहस्य को सुरक्षित बनाता है?
नहीं। रिडैक्शन उन प्रतियों की रक्षा करता है जो आप अब से बनाते हैं; यह उस टिकट, चैट संदेश या लॉग को वापस नहीं ले सकता जो रहस्य सहित पहले ही जा चुका है। किसी साझा प्रणाली में बिना रिडैक्ट किए प्रकट हुए किसी भी क्रेडेंशियल को सार्वजनिक मानें: उसे प्रदाता पर रोटेट करें, पुराने को रद्द करें, और केवल तभी रिडैक्ट किया हुआ टेक्स्ट साझा करें। साथी लेख, चिपकाने से पहले अपने रहस्य रिडैक्ट करें, पहले-रोटेट क्रम और संदेश हटाना पर्याप्त क्यों नहीं है, यह बताता है।