Gå til innhold

Passord kryptering (sha1 og salt)


Anbefalte innlegg

Heisann!

 

Jeg driver med en skoleoppgave hvor vi skal lage en nettbutikk. Et av kravene er å få til brukerinnlogging. Det jeg trenger hjelp med er hvordan jeg enklest mulig kan kryptere passord. Det skal ikke være "crack proof", men det skal bare gjøre det tilsynelatende vanskeligere. Slik at det ikke blir "for obvious" etter lærerens ord. Jeg tenkte derfor på å bruke sha1 og salt som en løsning. Har noen av dere erfaring med noen av de nevnte, og om dere kunne vist meg noen eksempler slik at jeg kan se hvordan jeg skal gå frem når jeg selv skal gjøre det. Andre forslag til en løsning på krypteringen tas gjerne i mot. På forhånd takk!

 

- Boil

Lenke til kommentar
Videoannonse
Annonse

Måten det gjerne gjøres på er vel at du har en database med brukerkontoer der passordhashene er lagret (altså IKKE i passord klartekst). Alt php-koden din gjør er å kjøre samme hashfunksjon på passordet og sjekker om hashen stemmer med hashen som ligger i databasen.

 

Bruk SHA256. Veiledning står her.

Lenke til kommentar

Det er jeg klar over, det jeg lurte mest på var å ha en løsning hvor jeg ikke bare hasher passordet, men kanskje [passord]+[brukernavn]+ghy. Slik at det i teroien ikke blir like lett og crakce passordet. Dette skal ikke publiseres på noen som helst måte, kun en oppgave som vil være offline og vurderes av lærer. Så det mest avanserte er jeg ikke ute etter.

Lenke til kommentar

Et enkelt (og vanlig) system:

 

Nytt hash:

1. Lag random string. 5-15 char er vanlig. http://stackoverflow...tring-generator

2. sha1 eller sha512 ( $random . $password )

3. Lagre i DB som randomdata$hexofhash

 

Sjekke hash:

1. Les hash felt fra DB

2. Splitt streng på "$" inn i $random og $hash

3. sha1 eller sha512 ( $random . $password )

4. Sammenligne resultat med $hash. Hvis likt, riktig passord.

Endret av Terrasque
  • Liker 2
Lenke til kommentar
  • 2 uker senere...

Jeg veit ikke om denne oppgaven allerede levert men jeg anbefaler bcrypt med random salt for hver bruker. Dette gjør at dersom en hacker finner er salt så kan han ikke bare legge det til under brute force angrep. Bcrypt er også designet for å være treg og du kan selv bestemme hvor treg den skal være. Normalt er det ca 250ms per hash. I løpet av tiden det tar å sjekke en bcrypt hash kan man sjekke tusenvis av sha haster.

 

For info om hvordan det brukes les denne artikkelen http://oleaass.com/hashing-passwords-using-crypt-and-blowfish/ bare vær obs på at måte saltet genereres her ikke har sterk kryptografisk entropi og i et live system bør saltet generelt av enten openssl_random_pseudo_bytes eller mcrypt_create_iv

Lenke til kommentar
  • 2 uker senere...
Normalt er det ca 250ms per hash. I løpet av tiden det tar å sjekke en bcrypt hash kan man sjekke tusenvis av sha haster.

Hadde det bare vært så vel, men tusenvis er ikke engang i nærheten av realiteter. Milliarder er nok ordet som bør brukes her. Ja, det er snakk om med en maskin her, og nei, jeg tuller ikke (mon tro hvor kjapt det går med highend maskinvare fra 2013…)
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...