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 !).
Voici la partie PERL
Il y a donc un encryptage au format HEX, grace a l'algo Blowfish.
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 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_hex($pwd); $session->param('pwd',$crypt); print $session->header(-type=>"text/html");
Ayant la clé, qui permet de decrypter le mot de passe, j'ai essaye de ce bout de code :
Tout semble parfait : le tab[1] lu correspond bien a l'hex du fichier cgisess_.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $encrypted= $tab[1] ; echo "encryt: ".$encrypted,"<BR>"; $key = 'my_key'; $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 "original pwd: ",$pwd,"<BR>";
Quand je fais des echo la taille de la cle correspond bien a 56 et le IV a 8.
Tout ce passe bien jusqu'a mcrypt_decrypt, qui ne retourne pas le mot de passe decrypté.
Des idées s'il vous plait ? Merci par avance
Partager