Agenda

Avril
2024

L M M J V S D
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Jour avec événement(s)
Jour férié
MER
MER
Carte des utilisateurs
Login
 Connexion
Glossaire
icon_npds_glossaire

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | Autres

En ligne

Il y a actuellement 117 visiteur(s) et 0 membre(s) en ligne.

Devenez membre privilégié en cliquant ici

Chat anonyme -1
sondage 2
Test sondage
Résultats  Anciens sondages
  • Votes : 1321
  • Commentaire(s) : 5
Galeries Photo
Activité du Site

Pages vues depuis 20/04/2015 : 23 973 112

  • Nb. de membres 44
  • Nb. d'articles 4
  • Nb. de forums 50
  • Nb. de sujets 9
  • Nb. de critiques 2

Top 10  Statistiques

Github jpb
Bloc 2 affichant une galerie

Index du forum »»  Road map développement »» Implémentation nouveau process de cryptage

Implémentation nouveau process de cryptage#1120

7Contributeur(s)
Nicolas2jpbnpdsutilisateurtestkyliandpagestecnpdsutilisateurseverine
2 Modérateur(s)
phrjpb
Nicolas2 Nicolas2icon_post
si sa mouline un peut c'est qui ya un truc qui va pas enfin je c plus complètement embrouiller avec cette connexion.

commence a me gonfler cette system de mot de pass lol
jpb jpbicon_post
t'inquietes nico c'est probablement les dernier réglages les dernières touches lol
L'eau goutte à  goutte finit toujours par percer la pierre...
Nicolas2 Nicolas2icon_post
c'est le fait de faire la récupération des ancien mdp qui fait ralentir le truc et le fait de changer le hash a chaque connexion.

je fait des teste sur mon labo...
jpb jpbicon_post
c'est la que le haskey avait son importance ... il aurait évité ça !
L'eau goutte à  goutte finit toujours par percer la pierre...
Nicolas2 Nicolas2icon_post
tu pense que oui pour la hashkey ?

après je veut bien remodifier sur mon labo et tester avec la hashkey, mais pas aujourd'hui ni demain faut que je termine un projet sous mon Framework twister
jpb jpbicon_post
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 ....
L'eau goutte à  goutte finit toujours par percer la pierre...
Nicolas2 Nicolas2icon_post
ok pas le temps ce week-end mais je regarde sa lundi
jpb jpbicon_post
pas de prob quand tu peux !
L'eau goutte à  goutte finit toujours par percer la pierre...
Nicolas2 Nicolas2icon_post
remettre la hashkey dans la table users et authors

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
Nicolas2 Nicolas2icon_post
sa règle le problème de lenteur a la connexion ?