Detector de chaves de API e segredos

Antes de colar logs, código ou um arquivo .env no ChatGPT, verifique: chaves como sk-proj-… (OpenAI), AKIA… (AWS), ghp_… (GitHub), AIza… (Google), xoxb-… (Slack), sk_live_… (Stripe), JWTs, chaves privadas PEM e valores DB_PASSWORD=… são destacados e trocados por [REDACTED_…]. Sequências aleatórias com 24 ou mais caracteres e pelo menos 4,0 bits de entropia de Shannon por caractere também são marcadas. Nada sai do seu navegador.

O texto fica nesta aba. Não é enviado, salvo nem colocado no endereço. A busca por padrões pode deixar passar senhas curtas e chaves sem formato conhecido, e as marcas azuis podem ser inofensivas. Leia o resultado antes de enviar.

Isso resolveu seu problema?
Fonte preferida no Google

Como usar

  1. Cole o log, código, arquivo de configuração ou prompt que você ia mandar para um chat de IA. A verificação começa enquanto você digita.
  2. Confira os trechos destacados e a lista com números de linha. Vermelho indica formatos de chave conhecidos; azul, sequências aleatórias que podem ser segredos.
  3. Copie o texto mascarado. Marque "Manter os 4 primeiros caracteres" se quiser que dê para ver qual chave era, como ghp_****.

Como é calculado

Chaves de provedores conhecidos são reconhecidas pelo prefixo e pelo tamanho fixos: OpenAI sk- e sk-proj-, Anthropic sk-ant-, chaves de acesso da AWS (AKIA ou ASIA mais 16 letras maiúsculas ou dígitos), GitHub ghp_, gho_ e github_pat_, Google AIza mais 35 caracteres, Slack xoxb- e xoxp-, Stripe sk_live_, pk_live_ e rk_, JWTs (três partes base64url começando com eyJ) e blocos -----BEGIN … PRIVATE KEY-----.

Valores também são pegos pelo nome. Em arquivos .env e de configuração, é mascarado o valor de qualquer nome que contenha SECRET, TOKEN, PASSWORD, API_KEY, ACCESS_KEY ou PRIVATE_KEY, a chave secreta da AWS (40 caracteres após aws_secret_access_key) e a senha em strings de conexão como postgres://usuario:senha@host. Marcadores como changeme, <your-key>, ${VAR} e **** são ignorados.

Sequências sem formato conhecido recebem uma nota pela entropia de Shannon: H = -Σ p(c) log2 p(c). Um token de 24 ou mais caracteres que mistura maiúsculas, minúsculas e dígitos e atinge pelo menos 4,0 bits por caractere é marcado. Uma chave aleatória de 32 caracteres costuma ficar entre 4,5 e 5. Sequências só hexadecimais, como hashes de commit e UUIDs, são ignoradas.

Quando duas regras pegam o mesmo trecho, vale a mais específica: a chave dentro de OPENAI_API_KEY=… aparece como OpenAI, e não como segredo genérico de .env. Tudo acontece nesta página. O texto não é enviado, não é salvo e nunca vai para o endereço.

Formatos reconhecidos

ProvedorAparência
OpenAIsk-… , sk-proj-…
Anthropicsk-ant-…
AWSAKIA… (20 caracteres) + segredo de 40 caracteres
GitHubghp_… , github_pat_…
Google APIAIza… (39 caracteres)
Slackxoxb-… , xoxp-… , hooks.slack.com URL
Stripesk_live_… , pk_live_… , rk_…
JWTeyJ….eyJ….…
Chave privada-----BEGIN … PRIVATE KEY-----
String de conexãoscheme://user:password@host
Valor de .envNOME_COM_SECRET/TOKEN/PASSWORD=…

Perguntas frequentes

Meu texto é enviado para algum lugar?

Não. A verificação e a máscara rodam no seu navegador. O texto não é enviado, não fica no armazenamento local e não entra na URL, então não há nada para compartilhar sem querer. Ao sair da página, a caixa é limpa.

Já colei uma chave no ChatGPT. E agora?

Troque a chave. Revogue-a no painel do provedor e crie outra, mesmo que tenha apagado a conversa. Dependendo das suas configurações, as conversas podem ser guardadas para análise de abuso ou usadas em treinamento, e uma chave exposta uma vez deve ser tratada como vazada.

Por que uma sequência comum foi marcada como segredo?

A verificação de entropia marca sequências longas com cara de aleatórias, e alguns valores inofensivos são assim: IDs de build, imagens em base64, URLs assinadas. As marcas azuis são palpites. Desmarque "Marcar sequências aleatórias" para ver só formatos conhecidos e valores com nome.

O que ele pode deixar passar?

Senhas curtas ou inventadas escritas numa frase, segredos sem nome e com pouca aleatoriedade, chaves de provedores sem prefixo fixo e valores quebrados em várias linhas. Leia o resultado antes de enviar. A verificação reduz o risco, não prova que o texto está limpo.

As chaves do exemplo são reais?

Não. O exemplo usa as chaves de amostra da documentação da AWS, o token de exemplo público do jwt.io e sequências inventadas. Têm o formato certo, mas não abrem nada.