⊗ppPmAuHs 423 of 447 menu

Hashování hesel v PHP

Ukládat heslo v otevřené podobě je nesprávné. Hacker-zlomyslník může získat přístup k vaší databázi a odcizit hesla.

Proto se login obvykle ukládá v otevřené podobě a heslo je hashováno speciální funkcí md5, která parametrem přijímá heslo a vrací jeho hash, podle kterého nelze obnovit toto samotné heslo.

Pojďme například najít hash nějakého řetězce:

<?php echo md5('12345'); // vypíše '827ccb0eea8a706c4c34a16891f84e7b' ?>

Nyní musíme předělat naši registraci a naši autorizaci. Pro začátek bych doporučoval vyčistit tabulku s uživateli, protože tam nyní jsou uložena hesla v otevřené podobě, ale měla by být uložena jejich hashe. Poté se při testování registrace tabulka naplní daty v novém formátu.

Pojďme nyní upravit naši registraci tak, aby při uložení nového uživatele do databáze bylo přidáno ne heslo, ale jeho hash.

Popsaná oprava bude představovat něco takového:

<?php $login = $_POST['login']; $password = md5($_POST['password']); // převedeme heslo na jeho hash $query = "INSERT INTO users SET login='$login', password='$password'"; ?>

Proveďme podobné úpravy v autorizaci:

<?php $login = $_POST['login']; $password = md5($_POST['password']); // převedeme heslo na jeho hash $query = "SELECT * FROM users WHERE login='$login' AND password='$password'"; ?>

Proveďte změny v registraci s ohledem na hashování, zaregistrujte několik nových uživatelů, ujistěte se, že do databáze byli přidáni s hashovanými hesly.

Proveďte změny v autorizaci s ohledem na hashování, zkuste se přihlásit pod dříve registrovanými uživateli.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout