Pergunta frequente

O que e SHA-256 e como funciona em sorteios?

Atualizado em 05/05/2026 · Tempo de leitura: ~6 min

Resumo rapido

SHA-256 e uma funcao de hash criptografica que transforma qualquer entrada em uma string de 64 caracteres unica e impossivel de reverter. Em sorteios, ele e usado para 'lacrar' a seed aleatoria antes do sorteio acontecer — provando matematicamente que o organizador nao manipulou o resultado depois de ver os participantes.

SHA-256 em uma frase

SHA-256 (Secure Hash Algorithm 256-bit) e uma funcao matematica que transforma qualquer entrada — texto, lista, numero, arquivo — em uma sequencia fixa de 64 caracteres hexadecimais. Essa transformacao tem duas propriedades fundamentais: e deterministica (mesma entrada gera sempre o mesmo hash) e e impossivel de reverter computacionalmente (dado o hash, voce nao consegue descobrir a entrada).

Foi desenvolvida pela NSA (Agencia de Seguranca Nacional dos EUA) e padronizada em 2002 pelo NIST. Ela e a base de protocolos como Bitcoin, certificados HTTPS, autenticacao moderna e — desde 2018 — sorteios provavelmente justos (provably fair).

Como SHA-256 funciona na pratica

Pegue uma palavra qualquer, por exemplo 'sorteigram'. Aplique SHA-256 e voce obtem: 'd07f8a3c2e1b4a8f5c6d9e2f8b3a1c5e7d4b9f0a3c6e1d2f5b8a7c4e0d1f9b6a3' (exemplo ilustrativo). Mude uma unica letra — 'sorteigran' — e o hash muda completamente: 'a4f2c8b3e1d6f9a2c5b8e0d3f7a1c4b9e2d5f8a3c6b9e0d1f4a7c2b5e8d1f0a4'. Isso se chama 'efeito avalanche' e e crucial para a seguranca.

Para entradas grandes, o algoritmo divide a entrada em blocos de 512 bits, aplica uma serie de operacoes matematicas (rotacoes, XOR, AND, adicoes modulares) em cada bloco, e produz um hash final de 256 bits (32 bytes) representado como 64 caracteres hexadecimais.

O importante para entender: dado um hash, e computacionalmente impossivel descobrir a entrada original. Os melhores supercomputadores do mundo levariam mais tempo que a idade do universo para fazer engenharia reversa de um hash SHA-256. Isso e o que torna o algoritmo seguro.

Aplicacao em sorteios: o conceito de commit-reveal

Em sorteios, SHA-256 e usado em um protocolo chamado 'commit-reveal' (compromisso e revelacao). O fluxo funciona assim:

Fase 1 — Commit (compromisso): antes do sorteio, o organizador (ou a ferramenta) gera uma seed aleatoria de 256 bits. Por exemplo, a seed pode ser 'a3f8b2c5e1d9f4a7b6c3e8d2f5a1b9c4e7d0f3a6b9c2e5d8f1a4b7c0e3d6f9a2'. Esse valor sera usado depois para embaralhar os participantes.

Antes que ninguem veja a seed, a ferramenta calcula SHA-256(seed) e publica esse hash. Por exemplo: 'd07f8a3c2e1b4a8f5c6d9e2f8b3a1c5e7d4b9f0a3c6e1d2f5b8a7c4e0d1f9b6a3'. Esse hash e o 'commitment' — um lacre matematico sobre a seed.

Fase 2 — Sorteio: a ferramenta usa a seed (que continua secreta) para embaralhar os participantes via Fisher-Yates Shuffle e seleciona o ganhador.

Fase 3 — Reveal (revelacao): a ferramenta publica a seed original junto com o resultado. Qualquer pessoa pode aplicar SHA-256 sobre a seed revelada e comparar com o hash publicado na fase 1. Se baterem, esta provado matematicamente que a seed nao foi alterada depois de ver os participantes.

Por que isso resolve o problema de confianca

Sem SHA-256, voce depende da palavra do organizador. Ele pode dizer 'sorteei aleatoriamente', mas nada impede que ele tenha visto os participantes, escolhido um, e depois 'gerado' uma seed que produz aquele resultado especifico.

Com SHA-256 publicado antes, isso e impossivel. Para o organizador escolher um ganhador especifico, ele precisaria encontrar uma seed que, quando aplicada Fisher-Yates, produzisse exatamente aquele ganhador — e cujo SHA-256 batesse com o hash ja publicado. Isso e equivalente a quebrar SHA-256, algo que nenhum computador no mundo consegue em tempo razoavel.

O resultado: confianca matematica em vez de confianca pessoal. Voce nao precisa confiar no organizador, voce precisa confiar na matematica. E a matematica nao mente.

Implementacao no SorteiGram

O SorteiGram implementa o protocolo commit-reveal completamente automatizado. Quando voce inicia um sorteio, o sistema gera a seed usando crypto.randomBytes(32) do Node.js — funcao baseada no gerador criptograficamente seguro do sistema operacional.

O hash SHA-256 e calculado e armazenado no servidor antes do embaralhamento. A seed propriamente dita fica criptografada ate o momento do sorteio. O algoritmo de embaralhamento e Fisher-Yates Shuffle, que produz permutacoes uniformemente distribuidas.

Apos o sorteio, voce recebe um certificado PDF e uma URL publica permanente (sorteigram.app/verificar/SRT-XXXXX). Nessa URL qualquer pessoa pode ver: lista completa de participantes, seed revelada, hash SHA-256 publicado, algoritmo usado, ganhador final e timestamp. Para verificar manualmente: pegue a seed, aplique SHA-256, compare com o hash. Se baterem, o sorteio e provavelmente justo.

Isso e o padrao tecnico que diferencia o SorteiGram de qualquer outra ferramenta brasileira de sorteio Instagram. E um padrao caro de implementar (custo de computacao, armazenamento permanente das seeds, infraestrutura de URL publica) — mas e o unico padrao que entrega confianca matematica real.

Veja um sorteio com hash SHA-256

Gratis ate 200 participantes · Verificacao SHA-256 publica

Perguntas relacionadas

Quem inventou o SHA-256?

A NSA (National Security Agency dos EUA) desenvolveu a familia SHA-2 (que inclui SHA-256) e foi padronizada em 2002 pelo NIST como FIPS 180-2.

SHA-256 ja foi quebrado?

Nao. Ate 2026 nao existe ataque conhecido que permita reverter SHA-256 ou encontrar colisoes em tempo computacionalmente viavel. E considerado seguro para uso indefinido.

Por que nao usar MD5 ou SHA-1?

MD5 e SHA-1 ja foram quebrados (existe ataque viavel para encontrar colisoes). Para aplicacoes seguras como sorteios e bancos, use no minimo SHA-256.

Posso verificar manualmente um hash SHA-256?

Sim. Use qualquer ferramenta online ou comando 'sha256sum' (Linux/Mac) ou 'Get-FileHash -Algorithm SHA256' (PowerShell). O hash deve ser identico ao publicado pelo organizador.

Veja tambem