PHP Password_Hash -funksjon

PHP Password_Hash -funksjon
Brukerens passord for ethvert program er veldig viktig for å holde applikasjonen trygg mot forskjellige angrep. Det finnes mange måter i PHP for å generere et sikkert passord for å gjøre applikasjonen sikrere. Password_hash () -funksjonen er en måte å opprette et nytt passord-hash ved hjelp av enveis hashing-algoritmen. Syntaksen til denne funksjonen er gitt nedenfor.

Syntaks:

String | FALSE PASSWORD_HASH (String $ Password, String | Int | Null $ Algo [, Array $ Options = []])

Det første argumentet er obligatorisk, og det brukes til å ta strengverdien som vil bli hash.

Det andre argumentet er obligatorisk, og det brukes til å ta heltallet eller strengen som refererer til en algoritme, som vil bli brukt til å opprette passordet Hash. Denne funksjonen støtter for øyeblikket følgende algoritmer.

Passord_default:

Den bruker Bcrypt -algoritmen for å generere passordet hash.

Passord_bcrypt:

Den bruker Crypt_Blowfish -algoritmen for å generere passordet Hash.

Passord_argon2i:

Den bruker Argon2i Hashing -algoritmen for å generere passordet Hash, og den kan brukes hvis PHP har blitt samlet med Argon2 -støtte.

Passord_argon2id:

Den bruker Argon2ID -hashingalgoritmen for å generere passordet Hash, og den kan brukes hvis PHP er blitt samlet med Argon2 -støtte.

Det tredje argumentet er valgfritt, og det brukes til å definere en matrise som inneholder de støttede alternativene til den brukte algoritmen.

Følgende alternativer støttes av Password_Bcrypt -algoritmen.

salt:

Dette alternativet er utdatert nå. Saltverdien som genereres som standard er bedre å bruke.

koste:

Det brukes til å definere algoritmekostnadene som bør brukes. Standardverdien er 10.

Følgende alternativer støttes av Password_Argon2i og Password_Argon2ID -algoritmene.

Memory_cost:

Det brukes til å definere det maksimale minnet i KB som kan brukes til å generere passord -hasj ved å bruke Argon2 -hasj.

time_cost:

Det brukes til å definere den maksimale tiden som kan brukes til å generere passord -hashen ved å bruke Argon2 -hasj.

Tråder:

Det brukes til å definere antall tråder for å generere passordet hash ved hjelp av Argon2 -hashen.

Funksjonen returnerer Hashed Passord ved suksess eller usant ved feil.

passord_hash () Funksjonseksempler

Bruken av Password_hash () -funksjonen for å opprette hash -passord har vært i neste del av opplæringen.

Eksempel-1: Opprett et hash-passord ved hjelp av standard hash-algoritmen

Opprett en PHP -fil med følgende skript som vil generere en hash -verdi av et passord ved å bruke Password_hash () -funksjonen, og standard hashingalgoritme er blitt brukt her. De originale og hashede passordstrengene vil bli skrevet ut som skriptets utdata.

// Angi passordverdien
$ passord = 'SecretPassword';
// generere hashede passord basert på standardalgoritmen
$ hashed_password = passord_hash ($ passord, passord_default);
// Skriv ut det originale og hashede passordet
Ekko "Det opprinnelige passordet: $ Passord";
ekko "
Hash -passordet ved å bruke standardalgoritme: $ Hashed_password";
?>

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-2: Opprett hash-passord ved hjelp av kostnadsverdi og passord_bcrypt-algoritmen

Opprett en PHP -fil med følgende skript som vil generere en hash -verdi av et passord ved å bruke Password_Hash () -funksjonen. Password_Bcrypt -algoritmen og kostnadsverdien har blitt brukt i Password_hash () -funksjonen for å generere hashede passord. Både den originale og hashede passordstrengen vil bli skrevet ut som utdataene til skriptet.

// Angi passordverdien
$ passord = 'SecretPassword';
// Angi kostnadsverdien for Password_Bcrypt -algoritmen
$ alternativ = ["kostnad" => 5];
// generere hashede passord basert på standardalgoritmen
$ hashed_password = passord_hash ($ passord, passord_bcrypt, $ alternativ);
// Skriv ut det originale og hashede passordet
Ekko "Det opprinnelige passordet: $ Passord";
ekko "
Hashed -passordet ved hjelp av passord_bcrypt: $ Hashed_password";
?>

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-3: Opprett et hash-passord ved hjelp av passordet_argon2i-algoritmen

Opprett en PHP -fil med følgende skript som vil generere en hash -verdi av et passord ved å bruke Password_Hash () -funksjonen. Password_Argon2i -algoritmen har blitt brukt i Password_hash () -funksjonen for å generere hashede passord. De originale og hashede passordstrengene vil bli skrevet ut som skriptets utdata.

// Angi passordverdien
$ passord = 'SecretPassword';
// generere hashede passord basert på standardalgoritmen
$ hashed_password = passord_hash ($ passord, passord_argon2i);
// Skriv ut det originale og hashede passordet
Ekko "Det opprinnelige passordet: $ Passord";
ekko "
Hashed -passordet ved hjelp av Password_Argon2i: $ Hashed_password";
?>

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-4: Bruke Password_Hash () -funksjon med Password_Verify () Funksjon

Opprett en PHP -fil med følgende skript for å bekrefte hash -passordet ved å bruke Password_Verify () -funksjonen etter å ha generert hash -passordet fra en strengdata ved hjelp av Password_Hash () -funksjonen. Passordet vil bli hentet fra URL -parameteren og sjekket om passordet er gyldig ved å bruke passordverdien og hashede passordverdier i argumentene til Password_verify () -funksjonen. Hvis denne funksjonen vil returnere sann, er passordet gyldig; Ellers er passordet ugyldig.

// Angi passordverdien
$ passord = 'SecretPassword';
// generere hash -passordet basert på standardalgoritme
$ hashed_password = passord_hash ($ passord, passord_default);
if (isset ($ _ få ['passord']))

// tilordne passordet gitt fra nettadressen
$ v_password = $ _get ['passord'];
// Kontroller passordgyldigheten ved å bruke Password_Verify () -funksjonen
if (passord_verify ($ v_password, $ hashed_password))
Echo 'passord er gyldig.';
ellers
Echo 'passord er ugyldig.';

ellers
ekko "Passord er ikke gitt.";
?>

Produksjon:

Etter å ha utført skriptet ovenfor uten URL -parameteren, vises følgende utgang.

http: // localhost/php/pass4.PHP

Følgende utgang vises etter å ha utført skriptet ovenfor med URL -parameterverdien, 'hemmeligpassord ', og hash -passordet ble generert for denne verdien i skriptet. Så passordet er gyldig.

http: // localhost/php/pass4.PHP?Passord = SecretPassword

Følgende utgang vises etter å ha utført skriptet ovenfor med URL -parameterverdien, 'hemmelig' ugyldig.

http: // localhost/php/pass4.PHP?Passord = hemmelighet

Konklusjon

Ulike måter å lage et hash -passord ved å bruke Password_Hash () -funksjonen har blitt vist i eksemplene på denne opplæringen for å hjelpe PHP -brukerne til å bruke denne funksjonen riktig i skriptet sitt.