Criptografia e a base da seguranca digital. Desenvolvedores usam criptografia diariamente mesmo sem perceber: HTTPS, hashing de senhas, tokens de sessao. Entender os fundamentos evita erros criticos que podem comprometer milhoes de usuarios.
Diferenca entre hashing e criptografia
Criptografia e reversivel: voce cifra dados com uma chave e pode decifra-los com a mesma chave (simetrica) ou com outra chave do par (assimetrica). Usada para proteger dados em transito e em repouso que precisarao ser lidos novamente: comunicacao HTTPS, dados armazenados no banco como CPF ou cartao de credito, backups cifrados.
Hashing e irreversivel (one-way): voce transforma dados em um hash de tamanho fixo e nao e possivel recuperar os dados originais a partir do hash. Usado para senhas, integridade de arquivos e assinaturas digitais. Dado o mesmo input, sempre produz o mesmo output.
Hashing de senhas: fazendo certo
Nunca armazene senhas em texto puro. Nunca use MD5 ou SHA-1 ou SHA-256 puro para senhas. Esses algoritmos sao rapidos demais e permitem ataques de forca bruta com bilhoes de tentativas por segundo usando GPUs.
Algoritmos recomendados para hashing de senhas em 2026 pela ordem de preferencia: Argon2id que e o vencedor do Password Hashing Competition e recomendado pelo OWASP como padrao atual. Bcrypt que e robusto e amplamente disponivel em todas as linguagens sendo o padrao seguro ha mais de 20 anos. scrypt que e boa alternativa mas menos usado que os anteriores.
Esses algoritmos sao propositalmente lentos e configuraveis. O custo computacional pode ser ajustado para equilibrar seguranca e performance. Use um custo que leve pelo menos 250ms em seu hardware.
Salt e adicionado automaticamente por bcrypt e Argon2. O salt e um valor aleatorio unico concatenado a senha antes do hashing. Impede ataques com rainbow tables pois mesmo senhas iguais produzem hashes diferentes.
Pepper e um segredo adicional armazenado fora do banco de dados, tipicamente em variavel de ambiente. Concatenado a senha antes do hashing adiciona uma camada extra de protecao caso o banco seja comprometido.
Criptografia simetrica: AES
AES (Advanced Encryption Standard) e o padrao de criptografia simetrica mais usado no mundo. A mesma chave e usada para cifrar e decifrar. AES-256-GCM e o modo recomendado pois oferece confidencialidade e integridade (autenticacao) simultaneamente.
Cada operacao de cifragem deve usar um IV (Initialization Vector) ou nonce unico e aleatorio. Reutilizar IVs com a mesma chave compromete completamente a seguranca. O IV nao e secreto e pode ser armazenado junto com o texto cifrado.
Gerenciamento de chaves e o aspecto mais critico de criptografia simetrica. Nunca hardcode chaves no codigo. Use servicos dedicados como AWS KMS, Azure Key Vault, Google Cloud KMS ou HashiCorp Vault para gerar, armazenar e rotacionar chaves.
Criptografia assimetrica: RSA e curvas elipticas
Criptografia assimetrica usa um par de chaves: publica (para cifrar ou verificar) e privada (para decifrar ou assinar). RSA-2048 e o minimo recomendado para uso geral. Curvas elipticas (ECDSA, Ed25519) oferecem a mesma seguranca com chaves menores e melhor performance.
Casos de uso: TLS/HTTPS usa criptografia assimetrica para troca de chaves e simetrica para dados. Assinaturas digitais usam a chave privada para assinar e a publica para verificar. SSH usa pares de chaves para autenticacao sem senha.
Boas praticas de criptografia no codigo
Use bibliotecas estabelecidas e nunca implemente algoritmos criptograficos do zero. Em Python use a biblioteca cryptography. Em Node.js use o modulo crypto nativo. Em Java use o javax.crypto. Nunca invente seu proprio algoritmo ou protocolo criptografico.
Gere numeros aleatorios criptograficamente seguros para tokens, chaves e IVs. Use crypto.randomBytes em Node.js, secrets em Python e SecureRandom em Java. Nunca use Math.random ou random.random para fins de seguranca.
Rotacao de chaves: implemente um processo para rotacionar chaves periodicamente e quando houver suspeita de comprometimento. Mantenha versoes de chaves para decifrar dados antigos durante a transicao.
Tem um projeto em mente?
Somos especialistas em transformar ideias em produtos digitais. Apps, sites, automações e IA — vamos construir juntos.