Vibecoding
O erro de senha que 90% dos iniciantes cometem
Guardar a senha do usuário como texto puro no banco. Um vazamento e todo mundo fica pelado.
Você monta a tela de cadastro. Usuário digita a senha. Você salva no banco. Simples. E é aqui que 90% dos iniciantes cometem o erro mais perigoso do desenvolvimento web.
O erro: salvar a senha como texto puro. Do jeitinho que o usuário digitou, legível no banco. Parece inofensivo. É uma bomba com pavio aceso.
Meu take: senha em texto puro é o pecado original da segurança. Se vaza o banco, vazou a vida de todo mundo que confiou em você.
Por que isso é tão grave
Imagine que alguém acessa seu banco. Pode ser vazamento, backup exposto, funcionário mal-intencionado. Se as senhas estão em texto puro, ele lê todas de uma vez.
E aqui o problema explode: as pessoas repetem senha. A senha que ela usou no seu app é a mesma do e-mail, do banco, do Instagram. Você não vazou só o acesso ao seu sistema. Você entregou a vida digital dos seus usuários.
Isso não é hipótese. É como a maioria dos grandes vazamentos vira notícia.
A solução se chama hash
A regra é: você nunca guarda a senha. Você guarda uma impressão digital dela.
Hash é uma transformação de mão única. A senha vira uma sequência embaralhada da qual não dá pra voltar. Você joga "batata123" e sai algo como uma linha de caracteres sem sentido aparente.
No login, você aplica o mesmo hash na senha digitada e compara com o guardado. Bateu, é a pessoa certa. E você nunca precisou saber a senha real.
Vazou o banco? O atacante vê os hashes, não as senhas. Muito, muito mais difícil de explorar.
Não faça na mão
Segundo erro clássico: tentar criar seu próprio hash com uma função qualquer. Não faça. Criptografia é área onde amador vira vítima.
Use uma ferramenta feita pra isso. Em Node, o bcrypt:
import bcrypt from "bcrypt"
const hash = await bcrypt.hash(senha, 12)
Guarde o hash no banco. No login:
const confere = await bcrypt.compare(senhaDigitada, hash)
O bcrypt já cuida de detalhes que você nem sabe que existem, como o "sal" que impede duas senhas iguais de gerarem o mesmo hash. Deixa quem entende fazer.
Melhor ainda: nem guarde senha
O caminho mais seguro é não gerenciar senha nenhuma. Use um sistema de autenticação pronto: Firebase Auth, Auth0, o login do seu provedor.
Eles cuidam de hash, recuperação, tentativas, tudo. Você não reinventa segurança crítica. E menos código de senha seu é menos código pra errar.
Fazer login "do zero" parece impressionante. Na prática, é assumir um risco que gente muito maior que você já resolveu melhor.
O checklist da senha
- Nunca salve senha em texto puro. Nunca.
- Use hash com bcrypt ou equivalente.
- Não escreva sua própria criptografia.
- De preferência, use um sistema de auth pronto.
- No login, compare hashes, nunca a senha real.
Vibecoding com engenharia é saber onde não improvisar. Design de tela, você experimenta. Senha do usuário, você segue o que funciona. A confiança de quem se cadastrou está nas suas mãos. Texto puro joga essa confiança fora.
A decisão é sua.
Perguntas frequentes
Perguntas rápidas
+Qual o erro exatamente?
Salvar a senha do usuario como texto legivel no banco. Se alguem acessa o banco, le todas as senhas de uma vez.
+O que e hash?
Uma transformacao de mao unica. Vira uma sequencia sem volta. Voce compara hashes no login, nunca guarda a senha real.
+Preciso implementar isso na mao?
Nao. Use bcrypt ou o sistema de auth pronto do seu provedor. Fazer criptografia na mao e o segundo maior erro.
Continue lendo
Como não virar refém de uma ferramenta de IA
A ferramenta que você ama hoje pode dobrar de preço, mudar de dono ou fechar amanhã. Não construa em cima de uma só.
VibecodingO que fazer quando a IA te dá código que você não entende
A tentação é apertar aceitar e seguir. Não faça. Código que você não entende é código que você não mantém.
VibecodingPor que backup não é opcional
Existe quem faz backup e quem ainda não perdeu tudo. Você escolhe de qual lado ficar antes ou depois.