Bonjour à tous,
Depuis plusieurs jours je cherche de la documentation concernant ce sujet mais généralement je trouve l'information dans l'autre sens de php vers perl.
Mon interface est principalement basée sur du Perl mais la libraire jpgraph en PHP a été utilisé pour un bout de code/projet en PHP.
Je crée un login avec du CGI::Session en Perl. J'ai un script PHP qui allait lire dans le fichier crée associée (le nom du fichier est de type cgisess_INT) le mdp et le user_name pour pouvoir se connecter a la base.
Par securite, nous avons encrypte le mot de passe (bien entendu !).
Ayant la clé, qui permet de decrypter le mot de passe, j'ai essaye de ce bout de code :
Mais l'encrypted est mal recupere a la base (a la lecture des infos dans le fichier cgisess_INT, des caracteres etaient changes, des retours a la ligne apparaissent, je ne sais pas pourquoi).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $encrypted= $tab[1]; echo $encrypted; $key = 'ma_cle_de_taille_adequate'; $cle_taille = mcrypt_module_get_algo_key_size(MCRYPT_blowfish); $iv_taille = mcrypt_get_iv_size(MCRYPT_blowfish, MCRYPT_MODE_CBC); $iv = mcrypt_create_iv($iv_taille, MCRYPT_RAND); $cle = substr($key, 0, $cle_taille); $pwd = mcrypt_decrypt(MCRYPT_blowfish, $cle, $encrypted, MCRYPT_MODE_CBC, $iv); echo $pwd;
Mais j'ai persisté vers une autre voie: j'ai utilisé PHP::Session :
Il y a bien un fichier cree de type sess_INT (avec le mot de passe en clair mais je m'en occuperai apres) et dans mon scripts PHP, j'ai essaye basiquement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 my $q = new CGI; my $usr = $q->param('usr'); my $pwd = $q->param('pwd'); my $session; my $key = $global->{'key'}; if($usr ne '') { $session = new CGI::Session(); $session->expire('+10h'); my $id = $session->id(); $usr = $session->param('usr',$usr); my $cipher = new Crypt::CBC(-key => $key,-cipher => 'Blowfish'); my $crypt = $cipher->encrypt($pwd); my $php_session = PHP::Session->new($id); $php_session->set('usr' => $usr); $php_session->set('pwd' => $pwd); $php_session->save; $session->param('pwd',$crypt); print $session->header(-type=>"text/html");
Et bien entendu, ca ne marche pas: j'ai PHP5 .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php session_start(); echo $_SESSION['usr']."<BR>"; echo $_SESSION['pwd']."<BR>"; ?>
J'ai lu chez CPAN a propos de PHP::Session:
Est ce vraiment ce qui pose probleme? Parce que le fichier sess_INT est bien créé !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 PHP::Session provides a way to read / write PHP4 session files, with which you can make your Perl application session shared with PHP4.
Enfin, selon cette source (http://stackoverflow.com/questions/8...ns-data-in-php) je me suis orientée aussi vers session_set_save_handler . Mais très peu d'informations sur comment utiliser ce module. L'avez vous déjà pratiqué ?
Enfin Djibril tu parlais de la possibilite d'un tuto sur le forum perl de developpez (http://www.developpez.net/forums/d12...e-session-php/). A-t-il été créé ? Je ne le trouve malheureusement pas.
Merci d'avance pour votre aide précieuse
Partager