11-08-2017, 12:39
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"
Sauf que ça me faisait rien et me sortait 5 erreur qui était
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:
?>
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;
}
?>