Criptografia de Dados: os Conceitos Básicos Sem Jargão Excessivo
Criptografia parece complicada até você entender três conceitos. Veja simétrica, assimétrica e hashing explicados sem jargão.

Criptografia costuma parecer um assunto reservado a especialistas em segurança, cheio de matemática pesada e siglas intimidadoras. Na prática do dia a dia de desenvolvimento, porém, o que realmente importa se resume a três conceitos — e entendê-los bem já resolve a grande maioria das decisões que um desenvolvedor comum precisa tomar.
Criptografia simétrica: uma chave para tudo
Na criptografia simétrica, a mesma chave é usada tanto para criptografar quanto para descriptografar os dados. É rápida e eficiente, ideal para proteger grandes volumes de dados — como o conteúdo de um banco de dados ou arquivos armazenados.
O desafio da criptografia simétrica não está na criptografia em si, e sim em como compartilhar essa chave com segurança entre as partes que precisam usá-la. Se a chave vazar, qualquer dado protegido por ela fica exposto.
Criptografia assimétrica: duas chaves, papéis diferentes
Na criptografia assimétrica, existem duas chaves matematicamente relacionadas: uma pública, que pode ser compartilhada livremente, e uma privada, que deve permanecer em segredo absoluto. Dados criptografados com a chave pública só podem ser descriptografados com a chave privada correspondente.
Isso resolve o problema de compartilhamento da criptografia simétrica: é possível enviar dados protegidos para alguém sem nunca precisar transmitir uma chave secreta pela rede. O custo é a velocidade — a criptografia assimétrica é significativamente mais lenta, por isso raramente é usada para proteger grandes volumes de dados diretamente.
Na prática, os dois modelos costumam trabalhar juntos: a criptografia assimétrica é usada para trocar, com segurança, uma chave simétrica temporária, que então protege o restante da comunicação. É exatamente assim que o HTTPS funciona.
Hashing: uma via de mão única
Hashing é diferente dos dois modelos anteriores — não existe uma operação de "descriptografar" um hash. Uma função de hash transforma um dado de entrada em uma sequência de tamanho fixo, de forma determinística (a mesma entrada sempre gera a mesma saída) e, idealmente, impossível de reverter.
É o mecanismo correto para armazenar senhas: em vez de guardar a senha em si, o sistema guarda o hash dela. No login, a senha digitada é transformada em hash novamente e comparada com o hash armazenado — nunca a senha original é mantida em nenhum lugar.
Por que "hash simples" não é suficiente para senhas
Funções de hash genéricas (como as usadas para verificar integridade de arquivos) são rápidas por design — o que é exatamente o problema quando aplicadas a senhas, porque facilita ataques de força bruta. Para senhas, existem funções de hash específicas, propositalmente lentas e com "salt" (um valor aleatório adicionado antes do hash), que dificultam ataques desse tipo.
Erros comuns ao lidar com criptografia
Um erro frequente é criar um algoritmo de criptografia "próprio", por desconfiança de bibliotecas prontas ou para "simplificar". Criptografia é uma área onde soluções caseiras quase sempre têm falhas que não são óbvias até serem exploradas — usar implementações amplamente testadas e revisadas pela comunidade de segurança é sempre mais seguro do que reinventar.
Outro erro comum é confundir codificação com criptografia. Formatos como Base64 apenas transformam a representação de um dado — não protegem nada, e qualquer pessoa pode reverter a codificação instantaneamente. Não é criptografia, ainda que pareça visualmente semelhante.
Como decidir o que usar em cada situação
Para proteger dados armazenados em grande volume (banco de dados, arquivos): criptografia simétrica. Para estabelecer comunicação segura com uma parte desconhecida (troca de chaves, assinatura digital): criptografia assimétrica. Para armazenar senhas ou verificar integridade de dados sem precisar recuperá-los: hashing.
Perguntas frequentes sobre criptografia de dados
Qual a diferença entre criptografia e hashing?
Criptografia é reversível — com a chave certa, é possível recuperar o dado original. Hashing é uma via de mão única: não existe processo para "descriptografar" um hash e obter o dado original de volta.
É seguro armazenar senhas com criptografia simétrica, em vez de hash?
Não é a prática recomendada. Se a chave de criptografia vazar, todas as senhas ficam expostas em texto legível. Hash com salt é o padrão da indústria justamente porque não permite essa reversão, mesmo que o banco de dados inteiro seja comprometido.
O que é "salt" em criptografia?
É um valor aleatório único, adicionado à senha antes de calcular o hash. Isso garante que duas senhas idênticas gerem hashes diferentes, dificultando ataques que usam tabelas pré-calculadas de hashes conhecidos.
HTTPS usa criptografia simétrica ou assimétrica?
Usa os dois: criptografia assimétrica na etapa inicial de negociação, para trocar com segurança uma chave simétrica temporária, que depois protege o restante dos dados trafegados durante a sessão — de forma muito mais rápida.
Vale a pena implementar minha própria função de criptografia?
Praticamente nunca. Bibliotecas de criptografia estabelecidas passaram por anos de revisão pela comunidade de segurança — implementações próprias raramente alcançam o mesmo nível de robustez, mesmo com boas intenções.
Quer entender mais sobre segurança aplicada na prática?
Dominar os conceitos básicos de criptografia evita decisões de segurança arriscadas. Continue acompanhando conteúdos como este assinando a newsletter da Hagah Sistemas.
Artigos relacionados

LGPD Para Desenvolvedores: o Que Realmente Muda no Seu Código
A LGPD não é só um problema jurídico — ela mexe direto no seu modelo de dados. Veja o que muda na prática do desenvolvimento.

OWASP Top 10: as Vulnerabilidades Mais Comuns em Aplicações Web
A maioria dos ataques a aplicações web explora um punhado de falhas conhecidas. Veja o que é o OWASP Top 10 e como se proteger.

Autenticação vs. Autorização: Entenda a Diferença Que Todo Dev Deveria Saber
"Quem você é" e "o que você pode fazer" são perguntas diferentes. Confundir autenticação com autorização é uma das falhas mais comuns em sistemas.