Decodificador de QR code

Solte a imagem de um QR code e veja tudo o que o símbolo guarda: o conteúdo decodificado dividido em seus campos, a versão e a contagem de módulos, o nível de correção de erros, o padrão de máscara, os modos de codificação e os bytes brutos em hexadecimal. A decodificação acontece nesta aba, então a imagem nunca sai do seu dispositivo.

Solte aqui uma imagem de QR code, ou cole uma

PNG, JPG, WebP ou GIF

Decodificado no seu navegador. O arquivo nunca é enviado, e nada sobre ele é guardado nem mandado para lugar nenhum.

O que um decodificador de QR code mostra e um leitor não

Um decodificador de QR code é um programa que lê um QR code a partir de uma imagem e informa os dados guardados junto com a estrutura do símbolo que os carrega. A câmera de um celular para na primeira parte. A estrutura é o que explica por que um código tem o tamanho que tem, e o que deu errado quando um gerador produziu algo inesperado.

As seis coisas dentro de todo QR code

Todo QR code, de um código de cartão de visita com 21 módulos a um de 177 módulos, guarda as mesmas seis informações. A ISO/IEC 18004, a norma do QR code, define cada uma delas.

  • A versão é o tamanho do símbolo, de 1 a 40. A versão 1 tem 21 x 21 módulos e cada versão acrescenta quatro módulos por lado, então a versão 40 tem 177 x 177.
  • O nível de correção de erros é L, M, Q ou H, recuperando cerca de 7%, 15%, 25% e 30% do símbolo. Um nível mais alto gasta mais do símbolo com redundância, então o mesmo conteúdo precisa de uma versão maior.
  • O padrão de máscara é um de oito padrões, numerados de 0 a 7, que inverte módulos para o código não ter grandes áreas vazias nem formas que imitem um padrão de localização. Dois códigos com dados idênticos e máscaras diferentes têm aparências completamente diferentes.
  • Os modos de codificação são numérico, alfanumérico, byte e kanji. O modo numérico empacota três dígitos em 10 bits e o alfanumérico empacota dois caracteres em 11 bits, enquanto o modo byte gasta 8 bits em cada caractere.
  • O conteúdo é o texto em si: um link, credenciais de Wi-Fi, um cartão de contato. Um QR code guarda texto e nada mais; o que um celular faz com ele depende de como o texto começa.
  • Os codewords de correção de erros são a redundância Reed-Solomon que permite a um decodificador reconstruir dados danificados. Eles são consumidos durante a decodificação, e é por isso que um decodificador mostra o resultado e não os codewords.

Decodificado no seu dispositivo, inclusive as senhas

A imagem é decodificada nesta aba do navegador e nunca é enviada. Isso importa mais para um decodificador do que para a maioria das ferramentas, porque os conteúdos que as pessoas inspecionam são os sensíveis: um QR code de Wi-Fi guarda a senha da rede como texto simples, e um código de configuração de autenticação em dois fatores guarda o segredo que gera todos os códigos de login futuros.

O decodificador mostra a senha de Wi-Fi em uma linha própria porque lê-la costuma ser o motivo de o código ter sido decodificado. Ele lista o emissor e a conta de um código de dois fatores, mas deixa o segredo no conteúdo bruto, onde copiá-lo tem de ser um ato deliberado.

Como decodificar um QR code a partir de uma imagem

Quatro passos de um arquivo de imagem até o conteúdo completo e a estrutura do QR code dentro dele.

Gerar QR code
  1. 1

    Adicione a imagem

    Arraste um PNG, JPG, WebP ou GIF para o painel, escolha um arquivo ou cole um print da área de transferência. Mantenha no recorte a margem clara em volta do código, porque o decodificador a usa para achar as bordas do símbolo.

  2. 2

    Leia o conteúdo e seus campos

    O texto decodificado aparece por inteiro, com o tipo indicado. Links são divididos em esquema, domínio, caminho e query string; códigos de Wi-Fi em nome da rede, tipo de segurança e senha; cartões de contato em nome, telefone e e-mail.

  3. 3

    Confira a estrutura do símbolo

    Versão, contagem de módulos, nível de correção de erros, padrão de máscara e modos de codificação aparecem abaixo do conteúdo. Para as versões 1 a 20, o decodificador também mostra quantos bytes da capacidade do símbolo o conteúdo usa.

  4. 4

    Inspecione os bytes brutos se precisar

    O dump hexadecimal mostra o conteúdo exatamente como foi guardado, antes da decodificação de caracteres. É ali que se procura um caractere invisível, uma marca de ordem de bytes ou um texto salvo no conjunto de caracteres errado.

Quando um decodificador é a ferramenta certa

Quatro situações em que só o conteúdo não basta e a estrutura do QR code é a resposta.

Depurar um gerador de QR code

Uma biblioteca geradora produziu um código maior que o esperado. O decodificador mostra a causa de relance: nível H de correção de erros onde a intenção era M, ou um conteúdo de dígitos guardado em modo byte em vez de modo numérico.

Descobrir por que um código é tão denso

Uma URL de rastreamento longa empurra um código para a versão 8 ou acima, com módulos pequenos demais para imprimir em 2 cm. A linha de capacidade mostra quantos bytes o conteúdo usa, e a tabela de campos mostra quais parâmetros da query poderiam ser cortados.

Conferir o que um código de Wi-Fi ou de contato realmente guarda

Antes de imprimir um código de Wi-Fi para visitantes, decodifique-o e leia os campos. Um tipo de segurança errado ou um espaço perdido na senha é visível na tabela e invisível no padrão.

Resolver um desafio de QR code

Para um quebra-cabeça de QR code ou uma tarefa de capture-the-flag, o decodificador confirma a versão, o nível de correção de erros e a máscara de um código que funciona, para que uma decodificação manual possa ser conferida com uma resposta conhecida.

Como um QR code é decodificado, passo a passo

Os dez passos que todo decodificador de QR code executa, em ordem. É a mesma sequência que uma pessoa segue ao resolver um QR code à mão.

  • Localizar os três padrões de localização

    O decodificador procura a proporção 1:1:3:1:1 de escuro e claro que uma linha atravessando um padrão de localização produz em qualquer ângulo. Três deles dão a posição, o tamanho e a rotação do QR code; o canto sem padrão é o inferior direito.

  • Calcular a versão a partir do tamanho

    A contagem de módulos decorre da distância entre os padrões de localização, e a versão é (módulos - 17) / 4. As versões 7 e acima também guardam o número da versão duas vezes, como um bloco de 18 bits ao lado dos padrões de localização.

  • Ler a informação de formato

    Quinze bits ao lado dos padrões de localização guardam o nível de correção de erros em 2 bits, o padrão de máscara em 3 bits e 10 bits de correção de erros própria. A informação de formato é guardada duas vezes, então uma cópia danificada não interrompe a decodificação.

  • Remover a máscara fixa do formato

    Os 15 bits de formato passam por um XOR com o padrão fixo 101010000010010 antes de serem posicionados, para que a informação de formato nunca seja só zeros. Um decodificador faz o XOR com o mesmo padrão para recuperar os valores reais.

  • Desfazer a máscara de dados

    O padrão de máscara indicado na informação de formato é aplicado de novo à área de dados, o que restaura os módulos originais. A máscara afeta só os módulos de dados e de correção de erros, nunca os padrões de localização, de temporização ou de alinhamento.

  • Ler os módulos na ordem em zigue-zague

    Os dados são lidos em colunas de dois módulos de largura a partir do canto inferior direito, subindo, depois descendo no par de colunas seguinte, pulando todo padrão de função. Oito módulos formam um codeword.

  • Desintercalar os blocos de codewords

    Símbolos maiores dividem seus codewords em vários blocos e os intercalam, para que um arranhão danifique um pouco de cada bloco em vez de um bloco inteiro. O decodificador separa os blocos de novo antes de corrigi-los.

  • Aplicar a correção de erros Reed-Solomon

    Cada bloco é verificado e reparado com seus codewords de correção de erros. Este é o passo que deixa um QR code sobreviver a um logo sobre o centro, e o ponto em que um código com dano demais falha de vez em vez de devolver dados errados.

  • Ler o indicador de modo e a contagem de caracteres

    O fluxo de bits corrigido começa com um indicador de modo de 4 bits: 0001 numérico, 0010 alfanumérico, 0100 byte, 1000 kanji, 0111 ECI. Em seguida vem uma contagem de caracteres, com 8 bits de comprimento para o modo byte nas versões 1 a 9.

  • Decodificar os segmentos até o terminador

    Cada segmento é decodificado conforme o seu modo, e um símbolo pode ter vários em sequência. Os dados terminam em um terminador 0000, e depois dele a capacidade restante é preenchida com os bytes de preenchimento alternados 11101100 e 00010001.

O gerador do KoloQR com um QR code sendo desenhado e pronto para baixar

Faça um código que valha a pena decodificar

O KoloQR, um gerador de QR code gratuito com QR codes circulares e de formas personalizadas, cria QR codes estáticos para links, redes Wi-Fi, e-mail, números de telefone e perfis sociais, e os exporta em SVG, PDF, EPS ou PNG.

Todo código do KoloQR é gerado no nível H de correção de erros, que é o que deixa espaço para um logo e para padrões decorativos de módulo. Decodifique um aqui e o painel de estrutura mostra exatamente isso. O KoloQR não faz QR codes dinâmicos, então o conteúdo que você decodifica é o próprio destino, não um redirecionamento.

Gerar QR code

Questions? Answered

Um leitor devolve o que o QR code diz; um decodificador devolve também como o símbolo é construído. Este decodificador informa a versão, o nível de correção de erros, o padrão de máscara, os modos de codificação e os bytes brutos junto com o conteúdo. Só para o conteúdo e uma pontuação de legibilidade, o leitor de QR code é o caminho mais curto.

Só até onde a correção de erros do próprio código permite. Um QR code recupera entre cerca de 7% e 30% do seu símbolo, dependendo do nível, e o decodificador usa tudo isso automaticamente. Além desse limite, ou com um padrão de localização faltando, nenhum decodificador devolve um resultado, e o código tem de ser reconstruído à mão a partir da sua informação de formato.

Salve o QR code como imagem ou tire um print dele e solte o arquivo no decodificador desta página. A imagem é decodificada no navegador de um notebook ou desktop, sem câmera, sem aplicativo e sem envio. Um código em papel precisa antes ser fotografado ou digitalizado para um arquivo.

Um padrão de máscara é um de oito padrões fixos que um gerador de QR code aplica à área de dados para quebrar grandes regiões vazias e formas que lembrem padrões de localização. O gerador testa os oito e fica com o de menor pontuação de penalidade. O número da máscara escolhida é guardado na informação de formato para que um decodificador possa revertê-la.

Três configurações mudam o padrão sem mudar os dados: o nível de correção de erros, o padrão de máscara e a versão. Dois geradores codificando o mesmo link nos níveis M e H produzem padrões diferentes, e muitas vezes tamanhos diferentes. Decodifique os dois e o conteúdo é idêntico, enquanto as linhas de estrutura diferem.

Não. Um QR code guarda o seu conteúdo e as configurações estruturais necessárias para lê-lo, e nada mais. Não há autor, data de criação, identificador de dispositivo nem contador de leituras dentro do símbolo. Informações assim só existem para QR codes dinâmicos, e ficam no servidor do fornecedor, não no código.

Decodifique o QR code e leia o domínio. Se o conteúdo é o endereço final que você esperava, o código é estático. Se o conteúdo é um link curto no domínio de um fornecedor de QR code que encaminha para outro lugar, o código é dinâmico e para de funcionar se esse fornecedor desativar o link. QR codes estáticos vs dinâmicos explica a troca envolvida.

O conteúdo é decodificado a partir do símbolo inteiro com correção de erros, enquanto o nível e a máscara são lidos de 15 bits de formato ao lado dos padrões de localização. Em uma imagem de baixa resolução ou muito estilizada, o conteúdo pode ser decodificado enquanto essa pequena área não pode ser amostrada com limpeza. Uma imagem maior e mais nítida do mesmo código normalmente preenche a linha.

Não. O decodificador lê apenas QR codes, incluindo códigos com módulos arredondados ou de pontos e códigos claros sobre fundo escuro. Data Matrix, Aztec, PDF417 e códigos de barras lineares usam estruturas diferentes e precisam de outro leitor. Os códigos Micro QR, que têm um único padrão de localização, também não são suportados.

A visualização hexadecimal mostra o conteúdo como os bytes guardados no QR code, antes de serem interpretados como texto. A maioria dos geradores guarda texto em UTF-8, então letras latinas simples aparecem como seus valores ASCII. A visualização expõe o que o texto esconde: uma marca de ordem de bytes no início (ef bb bf), uma quebra de linha no final ou um espaço não separável dentro de uma senha de Wi-Fi.

Por que a KoloQR?

  • Crie QR codes para sites, cardápios, Wi-Fi, PDFs e cartões de visita
  • Personalize cores, logos e formas únicas
  • Baixe arquivos PNG e SVG de alta qualidade
  • Feito tanto para impressão quanto para o digital
Gerar QR code
Um QR code preto simples ao lado do mesmo código redesenhado como um círculo com as cores da marca