⊗ppPmAuHFP 426 of 447 menu

password_hash funksiýasy

Aslynda md5 funksiýasy we ony ulanyp paroly duzlamak köne görnüşli hasaplanýar. Biz ony, indiki materialy düşünmegiňiz üçin, şeýle hem ýatdaş işlerinde duşuş bolup bilersiňiz sebäpli öwrendik.

Duzlan parol almak üçin has kämil usul bar. Bun üçin password_hash funksiýasy ulanylýar. Ilkinji parametri hökmünde setir alýar, ikinjisi bolsa şifrlemek algoritmi (onuň hakda soňra), we şol setiriň hashini duzy bilen bilelikde gaýtarýar.

Bu kody birnäçe gezek işletmäge synanyşyň:

<?php echo password_hash('12345', PASSWORD_DEFAULT); ?>

Her gezek dürli netije alarsyňyz we şu netijede setiriň birinji bölegi duz bolar, ikinji bölegi bolsa duzlan parol bolar.

Bizde password_hash funksiýasyndan alnan hash we bir parol bardyr diýeli. Bu hashiň şu parolyňky ýa-da däldigini barlamak üçin, password_verify funksiýasyny ulanyň - ilkinji parametri hökmünde paroly alýar, ikinjisi bolsa hashy, we true ýa-da false gaýtarýar.

Mysal üçin serediň:

<?php $password = '12345'; // parol $hash = '$2y$10$xoYFX1mFPxBSyxaRe3iIRutxkIWhxGShzEhjYUVd3qpCUKfJE1k7a'; // hash if (password_verify($password, $hash)) { // bu parolyň hashi } else { // hash bu parolyňky däl } ?>

Bu biz amalyýetde näme berýär: biz duzy saklamak üçin maglumatlar bazasynda aýratyn meýdan döretmeli däldiris, şu duzy döretmek bilen ýadawlanmaly däldiris - PHP ýolyňyzy eder!

Şeýlelikde, maglumatlar bazasynda password meýdanynda biz duzlan paroly onuň duzy bilen bilelikde saklar bolarys. Şol wagty hash edilen parolyň uzynlygy uly bolar. Şonuň üçin maglumatlar bazasynda parol meýdanynyň ölçegini düzetmeli we ony 60 simwola bellemeli.

Indi registrasiýa kodyny düzeliň. Häzirki bar bolan:

<?php function generateSalt() { $salt = ''; $saltLength = 8; // duzyň uzynlygy for($i = 0; $i < $saltLength; $i++) { $salt .= chr(mt_rand(33, 126)); // ASCII-table-dan simwol } return $salt; } $salt = generateSalt(); // duz $password = md5($salt . $_POST['password']); // paroly duzlan hash-e öwüremeli ?>

password_hash bilen biz muny şuňa gysgaldyarys:

<?php $password = password_hash($_POST['password'], PASSWORD_DEFAULT); ?>

Şuňa meňzeş ýagdaýda awtorizasiýa kody düzeler:

<?php $login = $_POST['login']; $query = "SELECT * FROM users WHERE login='$login'"; // ulanyjyny logine görä alýarys $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { $hash = $user['password']; // maglumatlar bazasyndan duzlan parol // Bazadan gelen hashiň girizilen parola gabat gelýändigini barlaýarys if (password_verify($_POST['password'], $hash)) { // hemmesi gowy, awtorizasiýa... } else { // parol gabat gelmedi, habar görkezeris } } else { // şeýle loginli ulanyjy ýok, habar görkezeris } ?>

Awtorizasiýa we registrasiýaňyzy täze öwrenilen funksiýalara öwüriň.

Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et