كاشف مفاتيح 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. الصق السجل أو الشيفرة أو ملف الإعدادات أو الطلب الذي كنت ستُرسله إلى محادثة ذكاء اصطناعي. يبدأ الفحص أثناء الكتابة.
  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 (ثلاثة أجزاء base64url تبدأ بـ eyJ)، وكتل -----BEGIN … PRIVATE KEY-----.

تُلتقط القيم أيضًا من أسمائها. في ملفات ‎.env والإعدادات تُخفى قيمة أي اسم يحتوي على SECRET أو TOKEN أو PASSWORD أو API_KEY أو ACCESS_KEY أو PRIVATE_KEY، وكذلك مفتاح AWS السري (40 حرفًا بعد aws_secret_access_key) وكلمة المرور في سلاسل الاتصال مثل 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=… يُوسم بأنه مفتاح OpenAI لا قيمة ‎.env عامة. كل شيء يجري في هذه الصفحة، فالنص لا يُرفع ولا يُحفظ ولا يُكتب في عنوان الصفحة.

الصيغ التي يتعرّف عليها

الخدمةالشكل
OpenAIsk-… , sk-proj-…
Anthropicsk-ant-…
AWSAKIA… (20 حرفًا) + سر من 40 حرفًا
GitHubghp_… , github_pat_…
Google APIAIza… (39 حرفًا)
Slackxoxb-… , xoxp-… , hooks.slack.com رابط
Stripesk_live_… , pk_live_… , rk_…
JWTeyJ….eyJ….…
مفتاح خاص-----BEGIN … PRIVATE KEY-----
سلسلة اتصالscheme://user:password@host
قيمة ‎.envاسم فيه SECRET/TOKEN/PASSWORD=…

أسئلة شائعة

هل يُرسل نصي إلى أي مكان؟

لا. الفحص والإخفاء يجريان في متصفحك. لا يُرفع النص ولا يُحفظ في التخزين المحلي ولا يُضاف إلى الرابط، فلا شيء يمكن مشاركته بالخطأ. ويُفرَّغ الحقل عند مغادرة الصفحة.

لصقت مفتاحًا في ChatGPT بالفعل. ماذا أفعل؟

غيّره. ألغِ المفتاح من لوحة تحكم الخدمة وأنشئ مفتاحًا جديدًا حتى لو حذفت المحادثة. بحسب إعداداتك قد تُحفظ المحادثات لمراجعة إساءة الاستخدام أو تُستخدم في التدريب، والمفتاح الذي انكشف مرة يُعدّ مسرّبًا.

لماذا عُلّمت سلسلة عادية على أنها سر؟

فحص الإنتروبيا يعلّم السلاسل الطويلة التي تبدو عشوائية، وبعض القيم غير الضارة تبدو كذلك: معرّفات البناء وصور base64 والروابط الموقّعة. العلامات الزرقاء تخمين. ألغِ تفعيل "تعليم السلاسل العشوائية" لترى الصيغ المعروفة والقيم المسمّاة فقط.

ما الذي قد يفوته؟

كلمات المرور القصيرة أو المؤلفة داخل جملة، والأسرار بلا اسم وقليلة العشوائية، ومفاتيح الخدمات التي لا بادئة ثابتة لها، والقيم المقسّمة على عدة أسطر. اقرأ النتيجة قبل الإرسال. الفحص يقلل الخطر ولا يثبت أن النص نظيف.

هل مفاتيح المثال حقيقية؟

لا. يستخدم المثال مفاتيح العينة من وثائق AWS، ورمز المثال العام من jwt.io، وسلاسل مختلَقة. صيغتها صحيحة لكنها لا تفتح شيئًا.