Validar chave API: prefixo, tamanho e caracteres
Uma chave é válida quando começa com o prefixo esperado, tem exatamente 18 caracteres contando esse prefixo e, depois dele, só letras e números. Pegue a tempo chaves cortadas, com espaços ou do ambiente errado. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Este validador confere o prefixo obrigatório, o tamanho total exato e os caracteres permitidos depois do prefixo. Ele não faz requisições de rede, não autentica no provedor e não afirma que uma chave compatível esteja funcionando. Use-o para detectar cortes, espaços acidentais, danos ao copiar e colar ou uma chave do ambiente errado antes de salvar a credencial em uma configuração ou iniciar uma implantação.
Descreva o formato esperado
Informe a candidata em <code>key</code> e reúna a expectativa completa em <code>pattern</code>. O padrão exige <code>prefix</code>, <code>length</code> e <code>charset</code>. O tamanho corresponde à string JavaScript inteira, incluindo o prefixo, e não apenas ao segredo.
O conjunto de caracteres vale para a parte que vem depois de um prefixo correto. Também é possível fornecer uma string explícita com todos os caracteres aceitos por um provedor específico. Quando não houver prefixo, use uma string vazia, mas mantenha o campo.
O padrão é obrigatório: agrupar as três restrições evita que uma simples conferência de tamanho seja tratada como validação completa. O limite de 10,000 caracteres é amplo e mantém o processamento previsível.
Leia cada resultado separadamente
O campo <code>valid</code> só é verdadeiro quando as três verificações passam. A chave candidata nunca volta na resposta. Se o prefixo estiver errado, o teste examina a string inteira, pois não há como deduzir com segurança onde o segredo começaria.
Assim, mais de uma verificação pode falhar ao mesmo tempo. O resultado é determinístico e não depende de relógio, aleatoriedade, estado externo ou rede. Um resultado falso significa incompatibilidade de formato, não uma credencial revogada ou inativa.
Valide em pontos seguros do fluxo
A conferência de formato é mais útil antes que uma chave entre em um cofre de configuração, variável de implantação, comando ou formulário de integração. Ela encontra falhas estruturais sem enviar a credencial ao serviço emissor. Trate uma correspondência apenas como etapa preliminar: ela não prova que a chave existe, pertence à conta correta, possui as permissões necessárias, não expirou ou não foi revogada.
Esses fatos exigem autenticação com o provedor em um fluxo separado e autorizado. Não grave chaves nem entradas completas em logs, análises, chamados de suporte ou rastreadores de erro. Em uma interface, mascare a candidata e mostre somente indicadores e tamanhos.
Crie o padrão com base na documentação atual do provedor e revise-o sempre que o formato das credenciais mudar.
Casos de uso
Proteja uma variável de implantação
Recuse uma chave cortada, com espaços ou do ambiente errado antes de iniciar a implantação.
Valide um formulário de integração
Mostre orientações precisas sobre prefixo, tamanho e caracteres inválidos sem tentar autenticar.
Confira migrações de configuração
Garanta que segredos migrados mantenham a estrutura esperada sem expô-los na saída.
Perguntas frequentes
O que o tamanho inclui?
É o tamanho exato da string JavaScript inteira, incluindo o prefixo e a parte secreta.
Um resultado válido significa que minha chave de acesso funciona?
Não. Ele só confirma o formato da chave. Não prova que ela existe, que pertence à conta certa, que tem as permissões adequadas nem que não expirou ou foi revogada; isso só o serviço que a emitiu pode dizer.
Minha chave é enviada para algum lugar durante a verificação?
Não. A verificação não faz nenhuma conexão de rede nem contata o fornecedor que emitiu a chave. A chave também não aparece no resultado, então você pode mostrá-lo sem expor o segredo.
Por que várias verificações falham quando só o prefixo está errado?
Quando o prefixo não confere, a ferramenta não tem como saber onde começa a parte secreta e examina os caracteres da chave inteira. Assim, uma falha de caracteres pode se somar à do prefixo, o que ajuda a achar o erro real.
Quais conjuntos de caracteres posso escolher?
Você pode escolher letras e números, só minúsculas e números, só maiúsculas e números, hexadecimal, hexadecimal em minúsculas ou Base64 seguro para endereços web. Também pode digitar a lista exata de caracteres que o seu fornecedor aceita.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/security/api-key-format-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"key":"sk_live_Ab3dE5fG7h","pattern":{"prefix":"sk_live_","length":18,"charset":"alphanumeric"}}'const res = await fetch("https://api.kit.forhosting.com/security/api-key-format-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"key": "sk_live_Ab3dE5fG7h",
"pattern": {
"prefix": "sk_live_",
"length": 18,
"charset": "alphanumeric"
}
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/api-key-format-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"key": "sk_live_Ab3dE5fG7h",
"pattern": {
"prefix": "sk_live_",
"length": 18,
"charset": "alphanumeric"
}
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/api-key-format-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"key":"sk_live_Ab3dE5fG7h","pattern":{"prefix":"sk_live_","length":18,"charset":"alphanumeric"}}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"key":"sk_live_Ab3dE5fG7h","pattern":{"prefix":"sk_live_","length":18,"charset":"alphanumeric"}}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/api-key-format-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"key": "sk_live_Ab3dE5fG7h",
"pattern": {
"prefix": "sk_live_",
"length": 18,
"charset": "alphanumeric"
}
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.api_key_format_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Chaves API costumam ter um formato reconhecível, embora somente o serviço emissor possa confirmar se estão ativas.
Descreva o formato esperado
Você pode usar <code>alphanumeric</code>, <code>lowercase_alphanumeric</code>, <code>uppercase_alphanumeric</code>, <code>hex</code>, <code>lowercase_hex</code> ou <code>base64url</code>.
Leia cada resultado separadamente
A resposta ainda apresenta <code>has_prefix</code>, <code>length_matches</code> e <code>charset_matches</code> separadamente, permitindo que uma interface explique exatamente o que precisa ser corrigido. <code>actual_length</code> e <code>expected_length</code> revelam rapidamente cortes ou caracteres colados a mais. Se o alfabeto falhar, <code>invalid_characters</code> lista cada caractere proibido uma única vez, na ordem em que surgiu.
Valide em pontos seguros do fluxo
A implementação determinística roda localmente no navegador; sistemas automatizados podem usar a API por US$ 0,002 por chamada.
Perguntas técnicas
Um resultado válido significa que a chave API está ativa?
Não. Ele apenas confirma que a string segue o formato informado e não consulta nem autentica no provedor.
Quais conjuntos nomeados estão disponíveis?
Use alphanumeric, lowercase_alphanumeric, uppercase_alphanumeric, hex, lowercase_hex ou base64url, ou informe uma string explícita de caracteres permitidos.
A chave API aparece na resposta?
Não. A resposta contém fatos da validação e caracteres inválidos distintos, mas nunca repete a candidata.
O que acontece quando nenhum padrão é enviado?
A chamada falha com invalid_input porque prefixo, tamanho e conjunto de caracteres são obrigatórios.
Quanto custa uma chamada da API?
Cada chamada custa US$ 0,002. A mesma validação determinística também pode rodar localmente no navegador.