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.
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.