API की और सीक्रेट स्कैनर

लॉग, कोड या .env फ़ाइल को ChatGPT में पेस्ट करने से पहले स्कैन करें: sk-proj-… (OpenAI), AKIA… (AWS), ghp_… (GitHub), AIza… (Google), xoxb-… (Slack), sk_live_… (Stripe) जैसी की, JWT, PEM प्राइवेट की और DB_PASSWORD=… वाले मान हाइलाइट होकर [REDACTED_…] से बदल जाते हैं। 24 या अधिक अक्षरों वाली ऐसी रैंडम स्ट्रिंग भी चिह्नित होती है जिसकी शैनन एन्ट्रॉपी प्रति अक्षर कम से कम 4.0 बिट हो। कुछ भी आपके ब्राउज़र से बाहर नहीं जाता।

टेक्स्ट इसी टैब में रहता है। न अपलोड होता है, न सेव होता है, न पते में जुड़ता है। पैटर्न मिलान छोटे पासवर्ड और बिना जाने-पहचाने फ़ॉर्मैट वाली की छोड़ सकता है, और नीले निशान हानिरहित भी हो सकते हैं। भेजने से पहले नतीजा पढ़ें।

क्या आपकी समस्या हल हुई?
Google पर पसंदीदा स्रोत बनाएँ

कैसे इस्तेमाल करें

  1. जो लॉग, कोड, कॉन्फ़िग फ़ाइल या प्रॉम्प्ट आप AI चैट में भेजने वाले थे, उसे पेस्ट करें। टाइप करते ही जाँच शुरू हो जाती है।
  2. हाइलाइट की गई जगहें और लाइन नंबर वाली सूची देखें। लाल रंग जानी-पहचानी की के फ़ॉर्मैट हैं, नीला रंग ऐसी रैंडम स्ट्रिंग जो सीक्रेट हो सकती है।
  3. छिपाया हुआ टेक्स्ट कॉपी करें। कौन-सी की थी यह दिखे, इसके लिए "पहले 4 अक्षर रखें" चालू करें, जैसे ghp_****।

गणना कैसे होती है

जानी-मानी सेवाओं की की उनके तय प्रीफ़िक्स और लंबाई से पहचानी जाती हैं: OpenAI sk- और sk-proj-, Anthropic sk-ant-, AWS एक्सेस की (AKIA या ASIA के बाद 16 बड़े अक्षर या अंक), GitHub ghp_, gho_ और github_pat_, Google AIza के बाद 35 अक्षर, Slack xoxb- और xoxp-, Stripe sk_live_, pk_live_ और rk_, JWT (eyJ से शुरू होने वाले तीन base64url हिस्से) और -----BEGIN … PRIVATE KEY----- ब्लॉक।

मान उनके नाम से भी पकड़े जाते हैं। .env और कॉन्फ़िग फ़ाइलों में जिस नाम में SECRET, TOKEN, PASSWORD, API_KEY, ACCESS_KEY या PRIVATE_KEY हो, उसका मान छिपाया जाता है। aws_secret_access_key के बाद की 40 अक्षरों वाली AWS सीक्रेट की और postgres://user:password@host जैसी कनेक्शन स्ट्रिंग का पासवर्ड भी। changeme, <your-key>, ${VAR} और **** जैसे प्लेसहोल्डर छोड़ दिए जाते हैं।

जिन स्ट्रिंग का फ़ॉर्मैट पता नहीं, उन्हें शैनन एन्ट्रॉपी से आँका जाता है: H = -Σ p(c) log2 p(c)। 24 या अधिक अक्षरों वाला ऐसा टोकन जिसमें बड़े-छोटे अक्षर और अंक मिले हों और जो प्रति अक्षर कम से कम 4.0 बिट हो, चिह्नित होता है। 32 अक्षरों की रैंडम की आम तौर पर 4.5 से 5 के बीच आती है। कमिट हैश और UUID जैसी सिर्फ़ हेक्साडेसिमल स्ट्रिंग छोड़ दी जाती हैं।

जब दो नियम एक ही टेक्स्ट पर लगें, तो ज़्यादा सटीक नियम चुना जाता है: OPENAI_API_KEY=… के अंदर की की को आम .env मान नहीं, OpenAI की बताया जाता है। सब कुछ इसी पेज पर चलता है। टेक्स्ट न अपलोड होता है, न सेव होता है, न पेज के पते में लिखा जाता है।

पहचाने जाने वाले फ़ॉर्मैट

सेवाकैसी दिखती है
OpenAIsk-… , sk-proj-…
Anthropicsk-ant-…
AWSAKIA… (20 अक्षर) + 40 अक्षरों की सीक्रेट
GitHubghp_… , github_pat_…
Google APIAIza… (39 अक्षर)
Slackxoxb-… , xoxp-… , hooks.slack.com URL
Stripesk_live_… , pk_live_… , rk_…
JWTeyJ….eyJ….…
प्राइवेट की-----BEGIN … PRIVATE KEY-----
कनेक्शन स्ट्रिंगscheme://user:password@host
.env मानSECRET/TOKEN/PASSWORD वाला नाम=…

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

क्या मेरा टेक्स्ट कहीं भेजा जाता है?

नहीं। जाँच और छिपाना ब्राउज़र में ही होता है। टेक्स्ट अपलोड नहीं होता, लोकल स्टोरेज में नहीं जाता और URL में नहीं जुड़ता, इसलिए गलती से शेयर होने जैसा कुछ नहीं है। पेज छोड़ते ही बॉक्स खाली हो जाता है।

मैं पहले ही ChatGPT में की पेस्ट कर चुका हूँ। अब क्या करूँ?

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

सामान्य स्ट्रिंग को सीक्रेट क्यों बताया गया?

एन्ट्रॉपी जाँच लंबी, रैंडम दिखने वाली स्ट्रिंग को चिह्नित करती है, और बिल्ड ID, base64 इमेज, साइन किए गए URL जैसे हानिरहित मान भी ऐसे दिख सकते हैं। नीले निशान अनुमान हैं। सिर्फ़ जाने-पहचाने फ़ॉर्मैट और नाम वाले मान देखने के लिए "रैंडम स्ट्रिंग चिह्नित करें" बंद करें।

यह क्या छोड़ सकता है?

वाक्य में लिखे छोटे या खुद बनाए पासवर्ड, बिना नाम और कम रैंडम सीक्रेट, बिना तय प्रीफ़िक्स वाली सेवाओं की की और कई लाइनों में बँटे मान। भेजने से पहले नतीजा पढ़ लें। स्कैन जोखिम घटाता है, यह साबित नहीं करता कि टेक्स्ट साफ़ है।

क्या उदाहरण वाली की असली हैं?

नहीं। उदाहरण में AWS दस्तावेज़ की सैंपल की, jwt.io का सार्वजनिक उदाहरण टोकन और गढ़ी हुई स्ट्रिंग हैं। फ़ॉर्मैट सही है, पर ये कुछ नहीं खोलतीं।