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처럼 16진수로만 된 문자열은 제외합니다.

두 규칙이 같은 부분에 걸리면 더 구체적인 쪽을 씁니다. 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에 공개된 예시 토큰, 직접 만든 무의미한 문자열입니다. 형식만 같을 뿐 아무것도 열지 못합니다.