~/tools / Prompt Redactor
Prompt Redactor — AI에 붙여넣기 전에 키, 토큰, 개인 정보를 가립니다
AI 채팅에 텍스트를 붙여넣기 전에 API 키, 토큰, 개인 키, 이메일, IP 주소, 카드 번호를 가려 두고, 답변이 오면 원래 값을 다시 채워 넣습니다. 입력한 내용은 브라우저 밖으로 나가지 않습니다.
가려진 텍스트
가려진 텍스트가 여기에 표시됩니다.
이 도구는 알아볼 수 있는 형태의 텍스트를 찾습니다. 일반 문장으로 쓴 기밀 정보는 찾지 못하므로, 아무것도 발견되지 않았다고 해서 안전하다는 뜻은 아닙니다.
보내기 전에 가려진 텍스트를 읽어 보세요.
키 형식은 2026-10-23에 벤더 문서와 RFC로 확인했습니다.
모든 처리는 브라우저 안에서 이루어집니다. 텍스트도 복원용 대응표도 업로드되지 않습니다.
프롬프트에는 공유할 생각이 없던 내용이 섞여 있기 쉽습니다. 스택 트레이스 속 접속 문자열, 설정 파일 속 키, 로그 한 줄에 들어 있는 고객의 이메일 같은 것들입니다. 이 도구는 알아볼 수 있는 형태를 가진 비밀 정보와 개인 정보를 찾아 각각 [EMAIL_1] 같은 자리표시자로 바꿉니다. 같은 값은 항상 같은 자리표시자가 되므로, AI도 무엇이 무엇인지 계속 따라갈 수 있습니다. AI가 답하면 그 답변을 복원 칸에 붙여넣어 원래 값을 다시 채워 넣을 수 있습니다. 찾는 것은 패턴이지 의미가 아닙니다. 문장으로 쓴 기밀 계획처럼 정해진 형태가 없는 텍스트는 감지하지 못합니다. 보내기 전에 반드시 결과를 직접 읽어 보세요.
이럴 때 사용
- AI에게 디버깅을 부탁하기 전에 스택 트레이스, 로그 일부, 설정 파일 정리하기
- 접속 문자열이나 토큰이 들어 있는 코드 조각 공유하기
- 고객 지원 대화 기록의 실제 이메일과 IP 주소를 자리표시자로 바꾸기
사용법
- 텍스트를 붙여넣거나 예시를 불러옵니다.
- 감지된 항목 목록을 확인하고, 가리고 싶지 않은 것은 체크를 해제합니다.
- 가려진 텍스트를 복사해서 AI 채팅에 붙여넣습니다.
- AI의 답변을 복원 칸에 붙여넣으면 실제 값이 다시 채워집니다.
찾을 수 있는 것
이 도구는 텍스트의 모양으로 일치 여부를 판단합니다. 아래는 문서로 공개된 접두사나 구조로 알아보는 형식들입니다.
| 종류 | 찾는 대상 | 문서로 공개된 내용 |
|---|---|---|
| 개인 키 | -----BEGIN … PRIVATE KEY-----부터 짝이 되는 END 줄까지의 블록 | RFC 7468은 BEGIN과 END 줄, 그리고 PRIVATE KEY와 ENCRYPTED PRIVATE KEY 레이블을 정의합니다. RSA, EC, OPENSSH 레이블은 관례입니다. |
| AWS 액세스 키 ID | AKIA 또는 ASIA 뒤에 대문자나 숫자 16자 | AWS는 접두사를 문서로 밝혔습니다. 액세스 키는 AKIA, 임시 키는 ASIA입니다. 예시는 20자입니다. |
| GitHub 토큰 | ghp_, gho_, ghu_, ghs_, ghr_ 또는 github_pat_ | GitHub는 접두사를 문서로 밝혔습니다. 길이와 문자 구성은 문서에 없습니다. |
| Slack 토큰 | xoxb-, xoxp-, xapp- 또는 xwfp- | Slack은 이 접두사들을 문서로 밝혔습니다. |
| Stripe 키 | sk_, pk_ 또는 rk_ 뒤에 test_ 또는 live_ | Stripe는 이 접두사들을 문서로 밝혔습니다. |
| Anthropic API 키 | sk-ant-api… | Anthropic은 접두사만 문서로 밝혔습니다. |
| JWT | 점으로 구분된 base64url 세 부분, 첫 부분은 eyJ로 시작 | RFC 7519는 세 부분을 정의합니다. eyJ로 시작하는 것은 흔한 패턴일 뿐 규칙이 아닙니다. |
| Authorization 헤더 | Bearer, Basic 또는 Token 뒤에 자격 증명 | RFC 6750은 Bearer를, RFC 7617은 Basic을 정의합니다. |
| URL 안의 비밀번호 | scheme://user:password@host | RFC 3986은 user:password 형식을 더 이상 쓰지 않는다고 합니다. |
비밀처럼 보이는 패턴
공개된 형식이 없는 것도 있습니다. OpenAI 키, Google API 키, password·secret·api_key 같은 이름에 값이 대입된 경우는 추측으로 일치시키므로, 키를 놓치거나 무해한 텍스트를 가릴 수 있습니다. 도구는 이들을 별도의 그룹으로 보여 주므로 끌 수 있습니다.
카드 번호는 13자리에서 19자리여야 하고, 주요 카드 브랜드처럼 시작하며 Luhn 체크 디지트를 통과해야 합니다. 시작 부분을 확인하기 때문에 13자리 타임스탬프가 카드로 취급되지 않습니다. Stripe가 문서로 밝힌 테스트 카드 번호 4242 4242 4242 4242는 감지됩니다.
자리표시자에 이름이 붙은 이유
같은 값은 항상 같은 자리표시자가 되고, 서로 다른 값에는 각자의 번호가 붙습니다: [EMAIL_1], [EMAIL_2]. 그래서 AI는 실제 주소를 보지 않고도 무엇이 무엇인지 따져 볼 수 있습니다. 예를 들어 [IP_1]이 [IP_2]에 닿을 수 없다는 식으로 말입니다.
AI의 답변을 복원 칸에 붙여넣으면, 남아 있는 자리표시자가 각각 원래 값으로 바뀝니다. AI가 자리표시자를 고쳐 쓰거나 빼 버리면 그 자리표시자는 복원할 수 없습니다.
찾지 못하는 것
- 문장 속에 쓴 이름, 주소, 전화번호.
- 내부 호스트 이름, 고객 ID, 프로젝트 코드명처럼 맥락에서만 비밀인 단어.
- 모르는 형식의 키.
- 이미 어딘가에 붙여넣은 비밀. 지금 가려도 되돌릴 수 없습니다.
보내기 전에 가려진 텍스트를 읽어 보세요. 아무것도 발견되지 않았다고 해서 안전하다는 증거는 아닙니다.
출처(확인일 2026-10-23): RFC 7468: Textual Encodings of PKIX, PKCS, and CMS Structures / RFC 7519: JSON Web Token (JWT) / RFC 6750: The OAuth 2.0 Bearer Token Usage / RFC 7617: The 'Basic' HTTP Authentication Scheme / RFC 3986: Uniform Resource Identifier (URI): Generic Syntax / AWS IAM: Understanding unique ID prefixes / GitHub Docs: About authentication to GitHub / Slack: Tokens / Stripe: API keys / Stripe: Testing
FAQ
무엇을 감지하나요?
개인 키 블록, JWT, 벤더가 접두사를 문서로 밝힌 토큰(AWS 액세스 키 ID, GitHub·Slack·Stripe 키, Anthropic 키)을 감지합니다. 또한 Authorization 헤더, URL 안의 비밀번호, password나 api_key 같은 이름에 대입된 값, 그리고 개인 정보인 이메일 주소, IPv4 주소, Luhn 검사를 통과하는 카드 번호를 감지합니다.
왜 어떤 감지는 '비밀처럼 보이는 패턴'이라고 하나요?
벤더가 접두사는 밝혀도 길이나 정확한 문자 구성은 밝히지 않는 키가 있고, OpenAI 키처럼 형식이 전혀 공개되지 않은 것도 있습니다. 이런 검사는 모양을 보고 하는 추측이라 키를 놓치거나 무해한 텍스트를 가릴 수 있습니다. 방해가 되면 그 분류의 체크를 해제하세요.
민감한 내용이 하나도 남지 않는다고 보장하나요?
아니요. 정해진 형태가 없는 비밀, 문장 속에 쓴 이름, 모르는 형식의 키는 알아보지 못합니다. 보내기 전에 가려진 텍스트를 읽어 보세요.
복원은 어떻게 이루어지나요?
도구는 자리표시자와 그것으로 바꾼 값의 대응표를 이 페이지의 메모리에만 보관합니다. AI의 답변을 붙여넣으면 아는 자리표시자가 하나씩 원래 값으로 바뀝니다. 페이지를 새로 고치면 대응표가 사라지므로, 작업하는 동안에는 페이지를 열어 두세요.
남겨 두려던 숫자가 왜 [CARD_1]로 바뀌었나요?
카드 감지는 주요 카드 브랜드처럼 시작하고 Luhn 검사를 통과하는 13자리에서 19자리 숫자를 찾기 때문에, 관계없는 숫자가 우연히 일치할 수 있습니다. 카드 번호의 체크를 해제하면 꺼집니다.
텍스트가 서버로 전송되나요?
아니요. 감지와 복원 모두 브라우저 안에서 실행됩니다.