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
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");
Il y a donc un encryptage au format HEX, grace a l'algo Blowfish.

Ayant la clé, qui permet de decrypter le mot de passe, j'ai essaye de ce bout de code :

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>";
Tout semble parfait : le tab[1] lu correspond bien a l'hex du fichier cgisess_.
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