Chers amis développeurs, bien le bonjour

Voila, j'ai un petit souci de cryptage avec php....

J'ai une app en java qui crypte mes données.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
      	    SecretKeySpec KeySpec = new SecretKeySpec(KeyBytes, "AES");
    	    Cipher cipher = Cipher.getInstance("AES"); 
    	    byte[] inputByte = inString.getBytes("UTF-8");
	    if (sens=="decrypt")
            {
		cipher.init(Cipher.DECRYPT_MODE, KeySpec);
		return new String (cipher.doFinal(Base64.decode(inputByte, Base64.DEFAULT))); 
	    } 
            else 
            {
		cipher.init(Cipher.ENCRYPT_MODE, KeySpec);
		return new String (Base64.encode(cipher.doFinal(inputByte), Base64.DEFAULT));
	    }
Jusque la pas de problèmes, ce petit bout de code fait parfaitement le travail en local.
Tout se complique losque j'essaye de communiquer avec le serveur (PHP)...

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
     function encrypt($sStr)
      {
        return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $Key, addpad($sStr), MCRYPT_MODE_ECB));
      }
     function decrypt($sStr)
      { 
        return rempad(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $Key, base64_decode($sStr), MCRYPT_MODE_ECB));
      }
     function addpad($str)
      {
        $block = mcrypt_get_block_size('aes');
        $pad = $block - (strlen($str) % $block);
        $str .= str_repeat(chr($pad), $pad);
        return $str;
      }
     function rempad($str)
      { 
        $block = mcrypt_get_block_size('aes');
        $len = strlen($str);
        $pad = ord($str[$len-1]);
        $str=substr($str, 0, strlen($str) - $pad); 
        return $str;
      }
Voici le code que j'utilise. Les données sont bien cryptées, le serveur reçoit bien les données
et les décrypte a peu près correctement, mais il semble qu'il reste un souci de "padding" (pkcs5 etc)

J'ai essayé pas mal de paramètres, avec ou sans les fonctions addpad/rempad,
en AES, CBC, ECB, PKCS5, avec ou sans ivs, etc... je désespére un peu...
Quelqu'un saurait m'indiquer ou ça cloche exactement ?

En gros le souci majeur est que lors de la réponse du serveur à java, la fin de la chaîne semble être corrompue.
Il s'agit de JSON dans mon cas, et cette chaîne ne peut donc être "parsée"...

Merci d'avance pour vos lumières

K.