Hvor i koden skal jeg indsætte sådan noget krypterings halløj?
der er når brugeren oprettes pw skal krypteres
det er når brugeren logger ind pw skal krypteres.
det er når brugeren updaterer sit pw der skal krypteres
+ samtlige existerende pw skal krypteres
så det er flere steder der skal laves noget.
hvis du ikke havde spredt dine sql sætninger rundt på alle sider, men lagt det i functioner, der ligger i 1 fil ville det være nemt
her er et udplug af nogle gamle functioner
private function MyCrypt($pw) {
$salt = $this->config->GetSalt();
return hash('sha512', $salt . $pw);
}
// my_profile
public function UpdatePassword($UserId, $pw) {
$pw = $this->MyCrypt($pw);
$this->Update("id", $UserId, array("pw" => $pw));
}
// logon.php
public function CheckPassword($username, $password) {
$id = 0;
$password = $this->MyCrypt($password);
$sql = "SELECT id FROM " . $this->tbl . " WHERE email = '$username' and pw = '$password' ";
$rs = $this->conn->query($sql) or die(var_export($this->conn->errorinfo(), TRUE));
if ($rs) {
$row = $rs->fetch(PDO::FETCH_ASSOC);
$id = $row['id'];
}
if (strlen($id) == 0)
$id = 0; // 0 kan ikke forkomme i tabeller der er autonummereret
return $id;
}
// tilmelding
public function Create_($name, $email, $addresse, $password) {
$password = $this->MyCrypt($password);
return $this->Create(array("name" => $name, "email" => $email, "pw" => $password, "adresse" => $addresse));
}
public function Update_($userid, $name, $email, $addresse, $password) {
$password = $this->MyCrypt($password);
$this->Update("id", $userid, array("name" => $name, "email" => $email, "pw" => $password, "adresse" => $addresse));
}
du skal ikke tage dig af private og public, $this, der er pga jeg har det liggende i en class
det du skal ligge mærke til er hvor mange steder pw bliver krypteret ( MyCrypt() )
og så anvender jeg PDO istedet for mysqli, men det minder meget om mysqli skrevet OOP style
Indlæg senest redigeret d. 01.02.2016 14:38 af Bruger #16075