Faça hash das senhas, nunca armazene texto simples
Use Werkzeug para aplicar hash e verificar senhas.
Faça hash das senhas, nunca armazene texto simples é uma aula grátis de Flask Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Flask Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Flask Academy inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Plaintext Is a Disaster
If you store passwords as plaintext, one database leak hands attackers every account at once. The first rule of auth is simple: never save the raw password. 🔒
Hashing, Not Encrypting
You protect passwords with hashing, a one-way transform. Unlike encryption, a hash cannot be reversed back into the original password, even by you.
Werkzeug Has It Built In
Flask ships with Werkzeug, which gives you two helpers for password security. You import them straight from its security module, no extra install needed.
from werkzeug.security import generate_password_hash, check_password_hashHash on Sign-Up
When a user registers, run generate_password_hash on their password and store only the result. The plaintext never touches your database.
hashed = generate_password_hash("hunter2")
user.password_hash = hashedSalt Comes Free
generate_password_hash adds a random salt for you. That is why two users with the same password get totally different stored hashes.
Verify on Login
At login you cannot un-hash anything. Instead you call check_password_hash with the stored hash and the typed password to get a True or False.
ok = check_password_hash(user.password_hash, "hunter2")Argument Order Matters
Remember the order: the stored hash comes first, the user-supplied password second. Swapping them silently breaks every login attempt.
check_password_hash(stored_hash, typed_password)Pick a Strong Method
By default Werkzeug uses a strong, slow algorithm on purpose. Slowness is a feature here, because it makes brute-force guessing far more expensive.
generate_password_hash(pw, method="pbkdf2:sha256")Store the Hash, Not More
Your user table needs a single password_hash column. You never need a separate salt column, since the salt is baked into the hash string itself.
password_hash = db.Column(db.String(255))Helper Methods on User
A clean trick is to put a set_password method on your User model so hashing lives in one place and your routes stay tidy.
def set_password(self, pw):
self.password_hash = generate_password_hash(pw)Never Log the Password
Even during debugging, do not print or log the raw password. A stray log line can leak credentials just as badly as a database breach can.
Quick Check
You need to confirm a login. Which call should you use?
Recap
You learned to hash with generate_password_hash, store only the result, and verify with check_password_hash. Plaintext passwords are gone for good. 🎉
Perguntas Frequentes
A aula “Faça hash das senhas, nunca armazene texto simples” é grátis?
Sim — o texto completo de “Faça hash das senhas, nunca armazene texto simples” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Flask Academy, atualize para CoddyKit PRO. O curso de Flask Academy inclui 4 aulas no total.
O que vou aprender em “Faça hash das senhas, nunca armazene texto simples”?
Use Werkzeug para aplicar hash e verificar senhas. Você pratica Flask Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Flask Academy?
Nenhuma experiência prévia é necessária. Flask Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Faça hash das senhas, nunca armazene texto simples”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Flask Academy?
Sim. Cada aula de Flask Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Faça hash das senhas, nunca armazene texto simples
- Carregador de usuários e UserMixin
- login_user, logout_user e sessões
- Proteja visualizações com login_required