Slaptažodžių maišymas PHP

Laikyti slaptažodį atvira forma – neteisinga. Įsilaužėlis piktadaris gali gauti prieigą prie jūsų duomenų bazės ir pavogti slaptažodžius.

Todėl paprastai prisijungimo vardas saugomas atvira forma, o slaptažodis yra maišomas specialia funkcija md5, kuri parametru priima slaptažodį, o grąžina jo maišą, pagal kurį negalima atkurti paties slaptažodžio.

Pavyzdžiui, suraskime kokios nors eilutės maišą:

html<?php
  echo md5('12345'); // išvests '827ccb0eea8a706c4c34a16891f84e7b'
?>

Dabar mums reikia perdaryti savo registraciją ir savo autorizaciją. Pirmiausia patarčiau išvalyti vartotojų lentelę, nes joje dabar saugomi slaptažodžiai atvira forma, o turi būti saugomi jų maišai. Toliau, testuojant registraciją, lentelė bus užpildyta duomenimis nauju formatu.

Dabar pataisykime savo registraciją taip, kad išsaugant naują vartotoją į duomenų bazę būtų pridedamas ne slaptažodis, o jo maišas.

Aprašytas pataisymas atrodys maždaug taip:

html<?php
  $login = $_POST['login'];
  $password = md5($_POST['password']); // paverčiame slaptažodį į jo maišą
  
  $query = "INSERT INTO users SET login='$login', password='$password'";
?>

Atlikime panašius pataisymus autorizacijoje:

html<?php
  $login = $_POST['login'];
  $password = md5($_POST['password']); // paverčiame slaptažodį į jo maišą
    
  $query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
?>
Задание 1

Atlikite pakeitimus registracijoje atsižvelgdami į maišymą, užsiregistruokite porą naujų vartotojų, įsitikinkite, kad į duomenų bazę jie buvo pridėti su sumaišytais slaptažodžiais.

Задание 2

Atlikite pakeitimus autorizacijoje atsižvelgdami į maišymą, pabandykite prisijungi su anksčiau užsiregistravusiais vartotojais.