Hasaba almakda duz gosmak
Şonuň üçin, siz bilýäňiz, md5 arkaly hashleme
- yzyna gaýtarylmaýan proses we hash alan häk,
şol hash arkaly paroly ala bilmez.
Aslynda bu maslahat doly dogry däl - häzirki zaman şer-häkler meşhur we şoňa meňzeş däl parollaryň kitaplanalaryny düzüp we her bir ahmak paroly diňe onuň hashini gözlegde gözläp alyp çözüp bilýär.
Gürrüň ýeterlikçe ýönekeý, meşhur parollar hakda.
Mysal üçin, 827ccb0eea8a706c4c34a16891f84e7b hashini
gözlegde gözläň we derrew Google gözleginde görersiňiz,
bu parol '12345'.
Ýeterlik kyn parollaryň hashlaryny şuňa meňzeş ýoly bilen çözüp bolmaýar (synap görüň).
Siz sorap bilersiňiz, onda nädip meselede - geliň hemmämiz kyn parollar bilen hasaba alalyň. Şonda, bir meselä bar - ulanyjylaryň köpüsi öz maglumatlarynyň howpsuzlygy barada oýlanmaýar we ýeterlik ýönekeý parollary girizip bilýärler.
Hasaba alnanda has uzyn parollar oýlap tapmaga mejbur edip,
çäklendirip, mysal üçin,
iň az nyşan sanyny 6-dan
ýa-da 8-den ýokarlandyryp bileris,
ýöne, şonda hem '123456' ýa-da '12345678' görnüşli
parollar peýda bolup biler.
Elbetde, parolyň kyňlygyny barlamak üçin has akyly algoritmi oýlap tapyp bolýar, ýöne başga çözgüt bar.
Bu çözgütiň mazmuny şeýle: parollar duzlanmaly. Duz - bu ýörite şolsaýyn setir, hasapla alnanda parola goşuljak we hash indi ýönekeý parolyň görnüşinden hasaplanmaz, ýöne setir duz+parol, ýagny duzlanan paroldan hasaplanar.
Hasaba alnanda siz şuňa meňzeş bir zady edersiňiz:
<?php
$salt = '1sJg3hfdf'; // duz - kyn şolsaýyn setir
$password = md5($salt . $_POST['password']); // paroly duzlanan hasha öwürýäris
?>
Şonda her bir ulanyjy üçin duz başgaça bolar, ona hasaba alnanda şolsaýynlykda döredilmeli boljak.
Munu edip biljek taýar funksiýa:
<?php
function generateSalt()
{
$salt = '';
$saltLength = 8; // duzyň uzynlygy
for($i = 0; $i < $saltLength; $i++) {
$salt .= chr(mt_rand(33, 126)); // ASCII-table-dan nyşan
}
return $salt;
}
?>
Bu funksiýa kömegi bilen bizim kodymyzy şeýle ýazyp bileris:
<?php
$salt = generateSalt(); // duz
$password = md5($salt . $_POST['password']); // duzlanan parol
?>
Ýene bir geze gaýtalaýaryn, bu hasaba alnanda üýtgeşmelerdi - MDB-ä diňe parolyň hashini saklamaýarys, ýöne duzlanan parolyň hashini saklaýarys.
Bu heniz hemmesi däl: ulanyjylaryň tablisasynda
login we password meýdanlaryndan başga
salt meýdany hem etmeli,
onda her bir ulanyjynyň duzuny saklaýarys.
Ýokarda beýan edilen duzlanan parol bilen hasaba almagy amala aşyryň.