Flask Academy · leksjon

Hash passord – lagre aldri klartekst

Bruk Werkzeug til å hashe og kontrollere passord.

Leksjon 1 av 413 trinn

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_hash

Hash 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 = hashed

Salt 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. 🎉

Gratis å komme i gang

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

  1. Hash passord – lagre aldri klartekst
  2. User Loader og UserMixin
  3. login_user, logout_user og sesjoner
  4. Beskytt views med login_required
← Tilbake til Flask Academy