Bonjour

Je cherche à mettre en place un system d'échange de données cryptées entre une application java et un serveur via php

J'ai réussi à implémenter la cryptographie en elle même en utilisant ce post:
blowfish-php-java don voici le code fonctionnel:

en java
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
	public static byte[] encrypt(byte[] messageBytes, byte[] key) throws GeneralSecurityException {
		Provider[] pvs = Security.getProviders();
		SecretKeySpec skeySpec = new SecretKeySpec(key, "Blowfish");
		Cipher cipher = Cipher.getInstance("Blowfish/CBC/PKCS5Padding");
		String iv = "00000000";
		IvParameterSpec ivs = new IvParameterSpec(iv.getBytes());
		cipher.init(Cipher.ENCRYPT_MODE, skeySpec, ivs);
		byte[] encrypted = cipher.doFinal(messageBytes);
		return encrypted;
	}
	
	public static byte[] decrypt(byte[] encrypted, byte[] key) throws GeneralSecurityException {
		SecretKeySpec skeySpec = new SecretKeySpec(key, "Blowfish");
		Cipher cipher = Cipher.getInstance("Blowfish/CBC/PKCS5Padding");
		String iv = "00000000";
		IvParameterSpec ivs = new IvParameterSpec(iv.getBytes());
		cipher.init(Cipher.DECRYPT_MODE, skeySpec, ivs);
		byte[] decrypted = cipher.doFinal(encrypted);
		return decrypted;
	}
en 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function encrypt($cleartext, $key){
	$cipher = mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_CBC, '');
    $key = substr($key, 0, mcrypt_enc_get_key_size($cipher));
	$iv = '00000000';
	
	// ajout du Padding.
	$cleartext_length = strlen($cleartext)%8;
	for($i=$cleartext_length; $i<8; $i++){
		$cleartext .= chr(8-$cleartext_length);
	}

	$cipherText='';
	// 128-bit blowfish encryption:
	if (mcrypt_generic_init($cipher, $key, $iv) != -1){
		// PHP pads with NULL bytes if $cleartext is not a multiple of the block size..
		$cipherText = mcrypt_generic($cipher,$cleartext );
		mcrypt_generic_deinit($cipher);
	}
	
	return $cipherText;
}

function decrypt($encrypted, $key){
	$cipher = mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_CBC, '');
    $key = substr($key, 0, mcrypt_enc_get_key_size($cipher));
	$iv = '00000000';
    
	// 128-bit blowfish encryption:
	if (mcrypt_generic_init($cipher, $key, $iv) != -1){
		// PHP pads with NULL bytes if $cleartext is not a multiple of the block size..
		$cleartext = mdecrypt_generic($cipher,$encrypted );
		mcrypt_generic_deinit($cipher);
	}
	
	// suppression du padding.
	$pad = ord(substr($cleartext,strlen($cleartext)-1));
	if($pad>0 & $pad<=8){
		$cleartext = substr($cleartext, 0, strlen($cleartext) - $pad);
	}
	
	return $cleartext;
	
}
Mon problème viens de la transmission car je n'arrive pas à encoder d'un coté puis décoder de l'autre.

J'ai essayer diverses techniques mais sans succès.