Hash passord – lagre aldri klartekst
Bruk Werkzeug til å hashe og kontrollere passord.
Hash passord – lagre aldri klartekst er en gratis leksjon i Flask Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Flask Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Flask Academy inneholder totalt 4 leksjoner.
Ren tekst er en katastrofe
Hvis De lagrer passord som ren tekst, gir én databasel lekkasje angripere tilgang til alle kontoene samtidig. Den første regelen for autentisering er enkel: Lagre aldri råpassordet. 🔒
Hashing, ikke kryptering
De beskytter passord med hashing, en enveisomforming. I motsetning til kryptering kan en hash ikke gjøres om til det opprinnelige passordet, heller ikke av Dem.
Werkzeug har dette innebygd
Flask leveres med Werkzeug, som gir Dem to hjelpefunksjoner for passordsikkerhet. De importeres direkte fra sikkerhetsmodulen, uten behov for ekstra installasjon.
from werkzeug.security import generate_password_hash, check_password_hashHash ved registrering
Når en bruker registrerer seg, kjører De generate_password_hash på passordet og lagrer bare resultatet. Ren tekst kommer aldri inn i databasen.
hashed = generate_password_hash("hunter2")
user.password_hash = hashedSalt følger med
generate_password_hash legger automatisk til et tilfeldig salt. Derfor får to brukere med samme passord helt forskjellige lagrede hasher.
Bekreft ved innlogging
Ved innlogging kan De ikke gjøre en hash om til originalen. I stedet kaller De check_password_hash med den lagrede hashen og det innskrevne passordet for å få True eller False.
ok = check_password_hash(user.password_hash, "hunter2")Argumentrekkefølgen er viktig
Husk rekkefølgen: den lagrede hashen kommer først, og passordet brukeren oppga, kommer som nummer to. Hvis De bytter om på dem, mislykkes alle innloggingsforsøk uten en tydelig feilmelding.
check_password_hash(stored_hash, typed_password)Velg en sterk metode
Som standard bruker Werkzeug med hensikt en sterk og langsom algoritme. Tregheten er en fordel her, fordi den gjør gjetting med rå kraft langt dyrere.
generate_password_hash(pw, method="pbkdf2:sha256")Lagre hashen, ikke noe mer
Brukertabellen trenger én enkelt kolonne kalt password_hash. De trenger aldri en separat salt-kolonne, siden saltet er innebygd i selve hash-strengen.
password_hash = db.Column(db.String(255))Hjelpemetoder på User
Et ryddig grep er å legge en set_password-metode i User-modellen, slik at hashing skjer på ett sted og rutene forblir oversiktlige.
def set_password(self, pw):
self.password_hash = generate_password_hash(pw)Logg aldri passordet
Selv under feilsøking må De ikke skrive ut eller logge råpassordet. En enkelt logglinje kan lekke påloggingsopplysninger like alvorlig som et databasainnbrudd.
Rask kontroll
De må bekrefte en innlogging. Hvilket kall bør De bruke?
Oppsummering
De har lært å hashe med generate_password_hash, bare lagre resultatet og bekrefte med check_password_hash. Passord i ren tekst er borte for godt. 🎉
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Hash passord – lagre aldri klartekst» gratis?
Ja – hele teksten i «Hash passord – lagre aldri klartekst» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Flask Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Flask Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Hash passord – lagre aldri klartekst»?
Bruk Werkzeug til å hashe og kontrollere passord. Du øver på Flask Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Flask Academy?
Ingen tidligere erfaring er nødvendig. Flask Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Hash passord – lagre aldri klartekst»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Flask Academy-leksjonen?
Ja. Alle Flask Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Hash passord – lagre aldri klartekst
- User Loader og UserMixin
- login_user, logout_user og sesjoner
- Beskytt views med login_required