summaryrefslogtreecommitdiff
path: root/Database
diff options
context:
space:
mode:
authorDebulois <quentin@debulois.fr>2022-04-12 22:26:32 +0200
committerDebulois <quentin@debulois.fr>2022-04-12 22:26:32 +0200
commit8dea7146e3860bd5b98d68a610b53cf888ede0e9 (patch)
tree67841582a77d882229e2a884603d8435071be054 /Database
parent2923e6fca634231533cca11e43a9091344ff4ba5 (diff)
Passage des mots de passe de DES par défaut en SHA512 pour etre compatible avec l'app
Diffstat (limited to 'Database')
-rw-r--r--Database/dbmain.php10
-rw-r--r--Database/meth_dbuser.php4
2 files changed, 7 insertions, 7 deletions
diff --git a/Database/dbmain.php b/Database/dbmain.php
index 67f27a4..193c93a 100644
--- a/Database/dbmain.php
+++ b/Database/dbmain.php
@@ -21,8 +21,6 @@ class DbMain {
// ****************************************************************************
// Pour gérer si "en production"
private $debug = True;
- // Salt pour le chiffrement
- private $salt = "t87RL7dKfaNAJKtCAR6cVFhEfkn7qBGW";
// Configuration du serveur MYSQL / MARIADB
private $conn;
private $host = "127.0.0.1";
@@ -191,9 +189,13 @@ class DbMain {
}
// Chiffre la data reçue
+ // https://www.delftstack.com/fr/howto/php/php-string-concatenation/
final public function crypt_pass($pass) {
- $crypt = crypt($pass, $this->salt);
- return $crypt;
+ // On génère une chaine de caractère aléatoire de 16 bytes en supprimant les caractères spéciaux de base64.
+ $salt = substr(str_replace("+", ".", base64_encode(random_bytes(32))), 0, 16);
+ // On configure pour avoir du SHA512 avec 10 000 tours (protection contre du bruteforce ex:hashcat)
+ $hash = crypt($pass, '$6'.'$rounds=10000'.'$'.$salt.'$');
+ return $hash;
}
// Prépare la requète pour mitiger (se protéger) les injections SQL et
diff --git a/Database/meth_dbuser.php b/Database/meth_dbuser.php
index 5161a82..488d3e1 100644
--- a/Database/meth_dbuser.php
+++ b/Database/meth_dbuser.php
@@ -57,13 +57,11 @@ class DbUser extends DbMain {
".$this->tableUserAccount."
WHERE
email = ? ";
- // Chiffrement du mot de passe
- $crypt = $this->crypt_pass($pass);
// Execution de la requète
$result = $this->exec_cmd($reqCheckCredential, array($email))->fetchAll(PDO::FETCH_ASSOC);
// Vérifiaction de correspondance email & pass
foreach ($result as $rows) {
- if ($rows["password"] == $crypt) {
+ if (password_verify($pass, $rows["password"])) {
return $rows["userId"];
}
}