Salut à toi visiteur !
Inscris toi en moins de 10 secondes pour profitez pleinement du site et partager avec la communauté ! S'inscrire


Source [VB] Auth avec .dll


#3
Je savais que c'était possible avec du php ^^ Mais j'ai pas trouvé de tutoriel fonctionnel, et comme je m'aventure pas trop dans le php j'ai abandonné, il me sortait une erreur à la dernière ligne donc : 

?>

Ensuite j'ai essayé en rajoutant la fonction RC4 pour "traduire" 

Code PHP :
function rc4($key$str) {
$s = array();
for (
$i 0$i 256$i++) {
$s[$i] = $i;
}

$j 0;

for (
$i 0$i 256$i++) {
$j = ($j $s[$i] + ord($key[$i strlen($key)])) % 256;
$x $s[$i];
$s[$i] = $s[$j];
$s[$j] = $x;
}

$i 0;
$j 0;
$res '';

for (
$y 0$y strlen($str); $y++) {
$i = ($i 1) % 256;
$j = ($j $s[$i]) % 256;
$x $s[$i];
$s[$i] = $s[$j];
$s[$j] = $x;
$res .= $str[$y] ^ chr($s[($s[$i] + $s[$j]) % 256]);
}

return 
$res;
}
  
?>
    
  

Sauf que ça me faisait rien et me sortait 5 erreur qui était 

Code PHP :
$sessionID $_GET["sessionID"];
$actionget $_GET["action"];
$user $_GET["user"];
$password $_GET["password"];
$registerkey $_GET["registerkey"]; 


J'avais bien la fonction rc4 vb aussi dans le prog ^^

Cependant l'erreur "?>" avait disparue
Trop de problème du coup j'ai pris la soluce du .dll en vb

le code entier:

Code PHP :
<?php
$sessionID 
$_GET["sessionID"];
$actionget $_GET["action"];
$user $_GET["user"];
$password $_GET["password"];
$registerkey $_GET["registerkey"];

if (empty(
$sessionID)) die ("ERROR:INVALID_SESSION_ID");


$action = new action;
if (
$actionget == "connect")
       $response $action->connect($user$password);
       elseif ($response == "register")
       $response $action->register($user$password$registerkey);
       else
               $response 
"ERROR:NO_ACTION";
       echo rc4($sessionID$response);

class 
action
{
       public $bdd;
       
       public 
function action()
       {
               try $this->bdd = new PDO('mysql:host= ;dbname= ''user'pwd');}
               catch (exception $ex) { die('
ERROR:ERROR_BDD_CONNECTION');}
       }
       
       public function connect($USER, $PASS)
       {
               if (!$this->userexist($USER)) return ("ERROR:USER_NOT_FOUND");
               
               $data = $this->executeQuery("SELECT * FROM Users WHERE USER = ?;", array($USER));
               if ($data['
PASSWORD'] != md5($PASS))
                       return("ERROR:INCORRECT_PASSWORD");
               elseif ($data['
ACTIF'] == 0)
                       return ("ERROR:USER_NOT_ACTIVE");
               else
                       return ("OK:") . $data['
ADMIN'];
       }
       
       public function register($USER, $PASS, $KEY)
       {
               
               $data = $this->executeQuery("SELECT * FROM Registerkey WHERE ReKey = ?;", array($KEY));
               if (empty($data['
ReKey'])) return ("ERROR:INVALID_KEY");
               if (!empty($data['
USER'])) return ("ERROR:KEY_ALREADY_USED");
               if ($this->userexist($USER)) return ("ERROR:USER_ALREADY_EXIST");
       
       $this->executeQuery("INSERT INTO Users VALUES ('', ?, ?, 1, 0, ?);", array($USER, md5($PASS), getTime()));
       $this->executeQuery("UPDATE Registerkey SET USER = ? WHERE ReKey = ?;", array($USER, $KEY));
       return ("OK:REGISTERED");
       }
       private function userexist($USER)
       {
               $data = $this->executeQuery("SELECT * FROM Users WHERE USER = ?;", array($USER));
               if (empty($data['
USER']))
                       return (false);
               else
                       return (true);
       }
       
       private function executeQuery($query, $args, $fetch = true)
       {
               $response = $this->bdd->prepare($query);
               $response->execute($args);
               
               if ($fetch)
               {
                       $data = $response->fetch();
                       $response->closeCursor();
                       return ($data);
               }
               else
                       return ($response);
}
   }

function getTime()
{
       date_default_timezone_set('
France/Paris');
       return date("Y-m-d H:m:s");
}

function rc4($key, $str) {
$s = array();
for ($i = 0; $i < 256; $i++) {
$s[$i] = $i;
}

$j = 0;

for ($i = 0; $i < 256; $i++) {
$j = ($j + $s[$i] + ord($key[$i % strlen($key)])) % 256;
$x = $s[$i];
$s[$i] = $s[$j];
$s[$j] = $x;
}

$i = 0;
$j = 0;
$res = '';

for ($y = 0; $y < strlen($str); $y++) {
$i = ($i + 1) % 256;
$j = ($j + $s[$i]) % 256;
$x = $s[$i];
$s[$i] = $s[$j];
$s[$j] = $x;
$res .= $str[$y] ^ chr($s[($s[$i] + $s[$j]) % 256]);
}

return $res;
}
  
?>    
  


Messages dans ce sujet
[VB] Auth avec .dll - par Tangohan - 10-08-2017, 07:50
RE: Login BDD avec .dll - par UzGz - 10-08-2017, 13:00
RE: Login BDD avec .dll - par Tangohan - 11-08-2017, 12:39
RE: Login BDD avec .dll - par UzGz - 11-08-2017, 23:34
RE: Login BDD avec .dll - par Tangohan - 12-08-2017, 01:43

Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Tutoriel Bouger WPF avec un Without Border Tangohan 5 2,660 15-08-2017, 22:53
Dernier message: kAliix

Atteindre :