Langue
🎨 Skin viewer
Les plus téléchargés
- 1 npds_agenda414
- 2 npds_galerie384
- 3 Programmes de Technologie 1985 MEN ...381
- 4 86-Car368
- 5 photosize358
- 6 npds_annonces 357
- 7 npds_glossaire348
- 8 npds_encapsuleur342
- 9 bootstrap.png315
- 10 superhero288
Index du forum »» Road map développement »» Implémentation nouveau process de cryptage
Implémentation nouveau process de cryptage#1120
le haskey en fait ne servait qu'une fois comme on l'avait dit (il permet donc la transition) .... mais une fois qu'il est a 1 il évite de repasser à chaque fois par le process ...( car on sait qu'on a un mot de pass crypté new fashion ...)
moi aussi ça me saoule de re re re implémenté mais si c'est bien plus rapide faudra le faire comme ça ....
moi aussi ça me saoule de re re re implémenté mais si c'est bien plus rapide faudra le faire comme ça ....
L'eau goutte à goutte finit toujours par percer la pierre...
remettre la hashkey dans la table users et authors
user.php/login
auth.inc.php
et function newPassBcrypt() dans le mainfille.php a virer
devrais corriger le problème tu na juste que ces deux function a modifier toutes les autres function et autre fichiers ne sot pas a modifier.
user.php/login
function login($uname, $pass) {
global $NPDS_Prefix, $setinfo;
$result = sql_query("SELECT pass, hashkey, uid, uname, storynum, umode, uorder, thold, noscore, ublockon, theme, commentmax, user_langue FROM ".$NPDS_Prefix."users WHERE uname = '$uname'");
if (sql_num_rows($result)==1) {
$setinfo = sql_fetch_assoc($result);
$result = sql_query("SELECT open FROM ".$NPDS_Prefix."users_status WHERE uid='".$setinfo['uid']."'");
list($open_user) = sql_fetch_row($result);
if ($open_user==0) {
Header("Location: user.php?stop=99");
return;
}
$dbpass = $setinfo['pass'];
$pass = utf8_decode($pass);
if ( password_verify($pass, $dbpass) or (strcmp($dbpass, $pass)==0)) {
if(!$setinfo['hashkey']) {
$AlgoCrypt = PASSWORD_BCRYPT;
$min_ms = 250;
$options = ['cost' => getOptimalBcryptCostParameter($pass, $AlgoCrypt, $min_ms)];
$hashpass = password_hash($pass, $AlgoCrypt, $options);
$pass = crypt($pass, $hashpass);
sql_query("UPDATE ".$NPDS_Prefix."users SET pass='$pass', hashkey='1' WHERE uname='$uname'");
$result = sql_query("SELECT pass, hashkey, uid, uname, storynum, umode, uorder, thold, noscore, ublockon, theme, commentmax, user_langue FROM ".$NPDS_Prefix."users WHERE uname = '$uname'");
if (sql_num_rows($result)==1)
$setinfo = sql_fetch_assoc($result);
$dbpass = $setinfo['pass'];
$scryptPass = crypt($dbpass, $hashpass);
}
}
if(password_verify(urldecode($pass), $dbpass) or password_verify($pass, $dbpass))
$CryptpPWD = $dbpass;
elseif (password_verify($dbpass, $scryptPass) or strcmp($dbpass, $pass)==0)
$CryptpPWD = $pass;
else {
Header("Location: user.php?stop=1");
return;
}
docookie($setinfo['uid'], $setinfo['uname'], $CryptpPWD, $setinfo['storynum'], $setinfo['umode'], $setinfo['uorder'], $setinfo['thold'], $setinfo['noscore'], $setinfo['ublockon'], $setinfo['theme'], $setinfo['commentmax'], $setinfo['user_langue']);
$ip = getip();
$result = sql_query("SELECT * FROM ".$NPDS_Prefix."session WHERE host_addr='$ip' AND guest='1'");
if (sql_num_rows($result)==1)
sql_query("DELETE FROM ".$NPDS_Prefix."session WHERE host_addr='$ip' AND guest='1'");
Header("Location: index.php");
} else
Header("Location: user.php?stop=1");
}
auth.inc.php
if ((isset($aid)) and (isset($pwd)) and ($op == 'login')) {
if ($aid!='' and $pwd!='') {
$result=sql_query("SELECT pwd, hashkey FROM ".$NPDS_Prefix."authors WHERE aid='$aid'");
if (sql_num_rows($result)==1) {
$setinfo = sql_fetch_assoc($result);
$dbpass = $setinfo['pwd'];
$pwd = utf8_decode($pwd);
if ( password_verify($pwd, $dbpass) or (strcmp($dbpass, $pwd)==0)) {
if(!$setinfo['hashkey']) {
$AlgoCrypt = PASSWORD_BCRYPT;
$min_ms = 250;
$options = ['cost' => getOptimalBcryptCostParameter($pwd, $AlgoCrypt, $min_ms)];
$hashpass = password_hash($pwd, $AlgoCrypt, $options);
$pwd = crypt($pwd, $hashpass);
sql_query("UPDATE ".$NPDS_Prefix."authors SET pwd='$pwd', hashkey='1' WHERE aid='$aid'");
$result = sql_query("SELECT pwd, hashkey FROM ".$NPDS_Prefix."authors WHERE aid = '$aid'");
if (sql_num_rows($result)==1)
$setinfo = sql_fetch_assoc($result);
$dbpass = $setinfo['pwd'];
$scryptPass = crypt($dbpass, $hashpass);
}
}
if(password_verify($pwd, $dbpass))
$CryptpPWD = $dbpass;
elseif (password_verify($dbpass, $scryptPass) or strcmp($dbpass, $pwd)==0)
$CryptpPWD = $pwd;
else
Admin_Alert("Passwd not in DB#1 : $aid");
$admin = base_64_encode("$aid:".md5($CryptpPWD));
if ($admin_cook_duration<=0)
$admin_cook_duration=1;
$timeX=time()+(3600*$admin_cook_duration);
setcookie('admin',$admin,$timeX);
setcookie('adm_exp',$timeX,$timeX);
}
}
}
et function newPassBcrypt() dans le mainfille.php a virer
devrais corriger le problème tu na juste que ces deux function a modifier toutes les autres function et autre fichiers ne sot pas a modifier.
Message édité par : Nicolas2 / 21-03-2021 08:03