← Base de Conhecimento

SHA-512 e a Integridade de Catálogo em Operações de Alto Volume de Varejo

Um campo de preço truncado durante transmissão FTP. Um arquivo de catálogo com 80.000 produtos que passou por todas as verificações de existência e tamanho — mas com dados corrompidos. SHA-512 é a diferença entre importar um catálogo íntegro e publicar preços errados às 00h30.

Espaço Reservado · AdSense

A Corrupção Silenciosa que Ninguém Detecta

O pipeline era simples e funcionava há três anos: o ERP gerava o feed de catálogo às 23h, um job FTP transferia o arquivo para o servidor do e-commerce, e às 00h30 um script de importação processava o arquivo e atualizava preços, estoque e disponibilidade de 80.000 SKUs. Tudo automatizado, tudo monitorado — o script verificava se o arquivo existia, se tinha mais de zero bytes, e se a importação completava sem erros de sintaxe.

O problema apareceu numa terça-feira de manhã, quando uma cliente tentou comprar um porcelanato 60x60 que estava com preço de R$ 0,89 no site — o preço correto era R$ 89,90. A análise do arquivo importado mostrou que o campo de preço daquele SKU estava truncado: 0.89 em vez de 89.90. O arquivo completo tinha 847 produtos com campos de preço truncados — todos com valores abaixo de R$ 1,00.

O que aconteceu: durante a transmissão FTP, um timeout de rede causou reconexão automática. O cliente FTP reconectou e continuou a transferência do ponto onde havia parado — mas o servidor FTP não suportava resume corretamente, o que resultou em sobreposição parcial de dados no meio do arquivo. O arquivo resultante tinha exatamente o tamanho esperado, passava em todas as verificações de integridade de tamanho, e continha JSON sintaticamente válido — mas com valores de preço corrompidos que nenhuma validação de sintaxe detectaria.

Como SHA-512 Difere de SHA-256 e MD5 em Uso Prático

SHA-512, SHA-256 e MD5 são todos algoritmos de hash criptográfico — eles produzem um digest de tamanho fixo a partir de uma entrada de qualquer tamanho. A diferença prática para verificação de integridade de arquivos:

  • MD5 (128 bits, 32 caracteres hex): rápido, amplamente disponível, mas com colisões demonstradas. Para verificação de integridade de arquivo (não de senha), a questão não são as colisões em si — é que MD5 é considerado confiável para integridade de arquivos em ambientes não adversariais. O problema de segurança do MD5 afeta senhas, não checksums de arquivos. Mas por boa prática, use pelo menos SHA-256.
  • SHA-256 (256 bits, 64 caracteres hex): padrão atual para a maioria dos casos de integridade de arquivo. Colisões computacionalmente inviáveis. Mais lento que MD5 mas negligivelmente em arquivos de alguns MB. Recomendado pelo NIST como padrão mínimo.
  • SHA-512 (512 bits, 128 caracteres hex): maior resistência teórica a ataques futuros (incluindo computação quântica parcial). Em hardware de 64 bits, SHA-512 é frequentemente mais rápido que SHA-256 porque aproveita melhor registradores de 64 bits. Para catálogos de produto e arquivos de dados críticos, SHA-512 é a escolha conservadora e defensivamente mais robusta.

Para integridade de arquivo em pipeline de dados de varejo — onde o risco não é ataque adversarial mas corrupção acidental —, SHA-256 já é mais do que suficiente. SHA-512 é a escolha para ambientes com requisitos de auditoria formal, onde o hash fica em log permanente e precisa sobreviver a décadas de evolução tecnológica.

Use o Gerador SHA-512 e CRC32 para gerar checksums de arquivos localmente antes de enviá-los, e comparar com o hash recebido na outra ponta da transmissão.

Implementando Checksum em Pipeline de Dados ERP → E-commerce

O protocolo de integridade que implementamos após o incidente de corrupção:

No lado do ERP (geração do arquivo)

  1. Gerar o arquivo de catálogo normalmente
  2. Calcular o SHA-512 do arquivo gerado: sha512sum catalogo_20250605.json
  3. Criar um arquivo de checksum paralelo: catalogo_20250605.json.sha512 contendo o hash e o nome do arquivo
  4. Transferir ambos os arquivos: o JSON e o .sha512

No lado do e-commerce (antes da importação)

  1. Verificar se ambos os arquivos foram recebidos
  2. Calcular o SHA-512 do arquivo JSON recebido
  3. Comparar com o hash no arquivo .sha512
  4. Se os hashes não coincidem: bloquear a importação, disparar alerta, aguardar retransmissão
  5. Se coincidem: prosseguir com a importação

Em PHP, a verificação é uma linha: if (hash_file('sha512', $arquivoRecebido) !== $hashEsperado) { /* bloquear */ }

CRC32 para Verificação Rápida vs SHA-512 para Auditoria

CRC32 é um checksum de 32 bits (8 caracteres hex) — muito mais rápido que SHA-512 mas sem propriedades criptográficas. Ele detecta erros acidentais de transmissão mas não resistiria a modificação intencional de arquivo (um atacante pode fabricar um arquivo diferente com o mesmo CRC32 com esforço razoável).

A combinação que usamos em produção:

  • CRC32 no momento da transferência: verificação rápida após FTP/SFTP, integrada ao protocolo de transferência. Detecta a maioria dos erros de rede antes de qualquer processamento.
  • SHA-512 antes da importação: verificação completa e criptograficamente segura antes de qualquer mudança no banco de dados de produção. O hash fica em log de auditoria com timestamp.

CRC32 com 8 caracteres tem probabilidade de colisão acidental de aproximadamente 1 em 4 bilhões — suficientemente baixa para erros de transmissão, insuficiente para contextos de segurança. Use CRC32 como verificação rápida de sanidade e SHA-256/512 para integridade formal.

Logging de Hashes para Auditoria de Longo Prazo

Em operações de varejo com requisitos regulatórios (Nota Fiscal Eletrônica, SPED, auditoria fiscal), o histórico de importações de catálogo pode ser exigido. Um log de auditoria mínimo por importação:

  • Timestamp de início e fim da importação
  • Nome do arquivo importado
  • Tamanho do arquivo em bytes
  • Hash SHA-512 do arquivo
  • Número de produtos processados, atualizados, ignorados
  • Resultado da importação (sucesso, erro, bloqueado por checksum)

Com esse log, você pode provar exatamente qual versão do catálogo estava ativa em qualquer momento histórico — e se um preço foi publicado incorretamente por corrupção de arquivo (argumento de defesa em disputas com clientes) ou por dado errado no ERP.

Perguntas Frequentes

SHA-512 é mais seguro que SHA-256 para verificação de integridade de arquivo?

Para integridade de arquivo em pipeline de dados — onde o risco é corrupção acidental, não ataque adversarial —, SHA-256 já oferece segurança mais do que adequada. SHA-512 é preferível em contextos de auditoria formal de longo prazo (o hash fica em log por anos ou décadas) e em ambientes que precisam de resistência futura a avanços em computação quântica. Para a maioria dos pipelines de dados de varejo, SHA-256 é suficiente; SHA-512 é a escolha conservadora para sistemas críticos.

Posso usar MD5 para verificar integridade de arquivos de catálogo?

Tecnicamente sim — colisões MD5 requerem geração intencional, não acontecem por acidente em transmissão de dados. Mas por boa prática e compatibilidade com políticas de segurança corporativa e auditoria, use pelo menos SHA-256. O custo computacional adicional é negligenciável para arquivos de catálogo (alguns MB), e a conformidade com padrões modernos vale o mínimo esforço adicional.

O que fazer se o hash do arquivo recebido não bate com o hash esperado?

Bloquear a importação imediatamente — nunca importar um arquivo com hash divergente. Registrar o evento em log com timestamp e os dois hashes (esperado e recebido). Disparar alerta para o time de operações. Solicitar retransmissão do arquivo original. Se a divergência for recorrente, investigar o protocolo de transferência — timeout de rede, modo ASCII em vez de binário no FTP (que converte quebras de linha), ou corrupção no armazenamento temporário.

SFTP é mais seguro que FTP para transferência de catálogos?

Sim, significativamente. FTP transfere dados em texto plano, incluindo credenciais de acesso — qualquer interceptação de rede expõe o arquivo e o login/senha. SFTP (SSH File Transfer Protocol) criptografa toda a sessão. Para transferência de arquivos de catálogo com preços, margens e dados de estoque — informação comercialmente sensível —, SFTP ou FTPS (FTP sobre TLS) são obrigatórios. FTP simples não deve ser usado em ambientes de produção de varejo.

Caso Real: NuAto no Varejo

Em uma grande rede de materiais de construção e home center com e-commerce de 80.000 SKUs, a NuAto foi acionada após um incidente de preços incorretos publicados no site durante a madrugada. A análise do incidente revelou que o arquivo de catálogo havia sofrido corrupção silenciosa durante a transmissão FTP — 847 campos de preço truncados, todos aparecendo como valores abaixo de R$ 1,00. O arquivo havia passado em todas as verificações de existência e tamanho, e a importação completou sem erros de sintaxe.

A implementação da verificação SHA-512 levou 4 dias — 2 dias de desenvolvimento no lado do ERP (para adicionar a geração do hash e do arquivo .sha512 ao job de exportação), 1 dia no lado do e-commerce (para adicionar a verificação antes da importação), e 1 dia de teste em ambiente de homologação simulando corrupção intencional do arquivo. O investimento total foi de aproximadamente 32 horas de desenvolvimento.

Nos 14 meses seguintes ao go-live da verificação, o sistema bloqueou 4 importações por hash divergente: 2 causadas por timeout de rede durante FTP, 1 por modo ASCII no cliente FTP (que havia convertido as quebras de linha do arquivo JSON, alterando o conteúdo), e 1 por espaço insuficiente no servidor que havia truncado o arquivo durante a escrita. Sem a verificação de SHA-512, todos os 4 arquivos teriam sido importados — e as consequências de preços errados, estoque inconsistente ou registros de produto truncados teriam sido descobertas horas depois, já em produção, pelo time de atendimento ao cliente.

Carlos Zucolli

30 anos de experiência em varejo, marketing digital e desenvolvimento de soluções para o comércio brasileiro. Sócio da NuAto Comunicação e criador da Toolbox Dev Design. Já gerenciou campanhas para gigantes do Atacarejo, Home Center e Cooperativas de Consumo.

Ver perfil completo →
Espaço Reservado · AdSense
Espaço Publicitário