ForHosting KIT · Ferramentas para dev

Codificador Git Base85

“hello” vira a linha Git Base85 EXk~0{ZvX%Q, cujo E inicial indica que a linha guarda cinco bytes: o dialeto que o Git usa em patches binários, diferente do Ascii85 da Adobe. Codifica texto ou bytes e decodifica linhas. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Texto
hello
Você obtém
Resultado
EXk~0{ZvX%Q
Modo de cálculo
Encode
Formato de saída
Text
Variante
git_base85

O Git grava alterações de arquivos binários em diffs unificados com um dialeto Base85 próprio, não Adobe Ascii85 nem Base64 simples. Cada linha de dados começa com uma letra de prefixo de comprimento—de A a Z para um a vinte e seis bytes decodificados, de a a z para vinte e sete a cinquenta e dois—seguida de cinco caracteres do alfabeto para cada quatro bytes de carga. Quem inspeciona seções GIT binary patch, depura falhas de apply ou cria ferramentas compatíveis precisa de um conversor que fale exatamente esse alfabeto e esse formato de linha.

Codificar texto ou hex em linhas Git Base85

Em cada bloco grava um prefixo de comprimento (A significa um byte, B dois, até Z para vinte e seis, depois a para vinte e sete até z para cinquenta e dois) e expande cada grupo de quatro bytes em cinco caracteres do alfabeto de oitenta e cinco símbolos do Git: dígitos, letras maiúsculas e minúsculas, e o conjunto de pontuação que omite aspas, vírgulas, pontos, barras e barras invertidas para que os patches permaneçam amigáveis a e-mail e shell.

Um grupo final curto é preenchido com zeros para a aritmética e depois truncado ao número correto de blocos de cinco caracteres, para que o decodificador recupere a contagem exata de bytes só com o prefixo. Defina format como hex quando a carga for binária bruta: text deve ser uma string hexadecimal de comprimento par (espaços e sublinhados permitidos), e esses bytes são codificados sem camada UTF-8. Entrada vazia é válida e produz resultado vazio com zero bytes e zero linhas.

O caminho é aritmética pura—sem rede, sem sal aleatório, sem relógio—assim entradas idênticas sempre produzem corpos Base85 idênticos para goldens de integração contínua.

Decodificar linhas com prefixo de comprimento e rejeitar entrada inválida

Defina mode como decode e coloque uma ou mais linhas Git Base85 em text. Linhas em branco são ignoradas para que você possa colar um fragmento copiado de um patch maior. Após o prefixo, o restante deve ser exatamente cinco vezes o número de grupos de quatro bytes necessários para a contagem declarada—símbolos a mais ou a menos são erro, não truncamento silencioso.

Cada caractere codificado deve pertencer ao alfabeto do Git; um símbolo emprestado do Adobe Ascii85 (por exemplo um menor-que solto ou um z de corrida de zeros que o Git não usa) falha imediatamente para que você nunca aplique por engano um dialeto alheio como corpo de patch binário. Uma decodificação bem-sucedida concatena todas as linhas em ordem em um único buffer de bytes.

Com format hex o resultado é uma string hex em minúsculas dos bytes recuperados, a escolha prática quando a carga é literal comprimido com zlib de um GIT binary patch real e não texto legível.

Como o Git Base85 difere do Ascii85

Muitas pessoas buscam um codificador Base85 depois de ver dados binários em um git diff e caem em ferramentas Adobe Ascii85 com outro alfabeto, wrappers opcionais less-than-tilde e um atalho z para zeros. O dialeto do Git é deliberadamente distinto: oitenta e cinco símbolos fixos começando no dígito zero, prefixos de comprimento por linha obrigatórios, sem delimitadores Adobe e sem token z de compressão. Esta página atende à intenção de busca específica do Git—codificador git base85, patch binário base85, decodificar git base85—e não compete com uma página Ascii85 geral.

Outro fluxo cola só as linhas de dados de um GIT binary patch (pulando o cabeçalho literal N se você já souber o tamanho) e recupera bytes para inspeção. Mantenha cargas modestas—é um item parse de nível A, não um servidor de packfiles—e fixe as strings result em goldens porque o algoritmo é totalmente determinístico entre isolados e linguagens que implementam a mesma tabela.

Inspecionar corpos de GIT binary patch

Decodifique linhas Base85 com prefixo de comprimento copiadas de um git diff --binary para fazer hex-dump da carga literal comprimida sem aplicar o patch inteiro.

Como codifico texto para Git Base85?

O campo result contém as linhas unidas por quebras de linha, cada uma com letra de comprimento A–z, e bytes é o comprimento UTF-8.

Como decodifico linhas Base85 de um patch binário do Git?

Defina mode como decode e coloque as linhas com prefixo de comprimento em text. Use format hex quando a carga for binária; format text (padrão) devolve UTF-8 se os bytes forem Unicode válido.

O que diferencia Git Base85 do Adobe Ascii85?

O Git usa um alfabeto de 85 caracteres diferente, exige prefixo de comprimento por linha (A–Z, a–z), não usa delimitadores <~ ~> e não implementa o atalho z de zeros da Adobe.

O codificador Git Base85 é gratuito?

A ferramenta do navegador roda grátis no seu dispositivo.

O que significa a primeira letra de cada linha Git Base85?

É o tamanho daquela linha em bytes: A significa um, B dois, até Z para 26, e depois a para 27 até z para 52. Uma linha nunca guarda mais de 52 bytes, e o decodificador usa essa letra para recuperar a quantidade exata.

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.

POSThttps://api.kit.forhosting.com/enc/base85-git

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/enc/base85-git \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"hello"}'
{
  "text": "hello"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.base85_git",
  "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.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Esta capacidade codifica texto UTF-8 ou bytes hexadecimais em linhas Git Base85 e as decodifica de volta, rejeitando símbolos ilegais, prefixos de comprimento errados e tamanhos de grupo incoerentes com invalid_input. Chamadas de API bem-sucedidas custam US$ 0,002 por item; falhas de validação não são cobradas.

Codificar texto ou hex em linhas Git Base85

Envie um corpo JSON com o campo de string obrigatório text e deixe mode em encode, ou defina mode como encode de forma explícita. Por padrão format é text: o motor codifica sua string em UTF-8 e percorre os bytes em blocos de no máximo cinquenta e dois octetos—o mesmo máximo que o Git usa em cada linha de patch binário. A resposta inclui result (linhas unidas por quebras de linha), mode encode, format, variant git_base85, bytes (comprimento da carga antes da codificação) e lines (linhas de saída não vazias).

Decodificar linhas com prefixo de comprimento e rejeitar entrada inválida

Cada linha não vazia deve começar com uma letra de comprimento válida; qualquer outro primeiro caractere falha com invalid_input citando a regra do prefixo de comprimento. Com format text (padrão) esses bytes são interpretados como UTF-8 com decodificador fatal: sequências inválidas geram invalid_input em vez de caracteres de substituição que corromperiam diffs posteriores. A resposta repete mode decode, format, variant git_base85, bytes como comprimento decodificado e lines como a contagem de linhas de entrada não vazias. Falhas de validação não são faturadas na API pré-paga, então sondar uma colagem suspeita é seguro para operadores e barato para scripts que condicionam merges ao sucesso do parse.

Como isso difere do Ascii85 e como usar a API

Use a API pré-paga do KIT a US$ 0,002 por item bem-sucedido quando um backend, bot ou job de integração contínua precisar emitir ou verificar corpos Git Base85 com saldo; validação falha nunca consome esse saldo.

Criar fixtures de teste compatíveis

Codifique sequências de bytes conhecidas em linhas Git Base85 para testes unitários de ferramentas apply, bots de merge e documentação que precise coincidir com o alfabeto e os prefixos do Git.

Detectar mistura de dialetos no CI

Rejeite Adobe Ascii85 ou colagens corrompidas com invalid_input antes que um pipeline trate Base85 alheio como corpo válido de patch binário.

O que acontece com entrada Base85 inválida?

A decodificação falha com invalid_input para prefixos de comprimento errados, caracteres fora do alfabeto do Git, tamanhos de grupo incorretos ou UTF-8 inválido quando format é text. Falhas de validação não são cobradas.

Ver a documentação completa do KIT →