Deszyfrowanie DES / ECB / PKCS5Padding w PHP

Potrzebuję odszyfrowania przy pomocy PHP (lub Javascript) niektórych zgłoszeń serwisowych. Cały dzień spędziłem na próbach osiągnięcia tego, ale nie byłem w stanie go odszyfrować poprawnie.

Jako odniesienie dostawca usług wysłał mi następujący przykładowy kod deszyfrujący w Javie:

<code>DESKeySpec dks = new DESKeySpec("keyword".getBytes()); 
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(dks);

Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
SecureRandom sr = new SecureRandom();  
cipher.init( Cipher.DECRYPT_MODE, key ,sr); 

byte b[] = response.toByteArray();      
byte decryptedData[] = cipher.doFinal( b );
</code>

Myślę, że jestem na właściwej ścieżce, używając:

<code>$td = mcrypt_module_open(MCRYPT_DES, '', 'ecb', '');
$iv_size = mcrypt_enc_get_iv_size($td);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$key = substr($keyword, 0, mcrypt_enc_get_key_size($td));
mcrypt_generic_init($td, $key, $iv);
$decrypted = mdecrypt_generic($td, $data);
$decrypted = pkcs5_unpad($decrypted);
</code>

Ale, szczerze mówiąc, jestem pewien, że wszystko zepsułem za pomocą $ iv createg i $ keyword setup (a może z $ data lub $ decrypted types?). Funkcja pkcs5_unpad jest następująca:

<code>function pkcs5_unpad($text)
{
   $pad = ord($text{strlen($text)-1});
   if ($pad > strlen($text)) return false;
   return substr($text, 0, -1 * $pad);
}
</code>

Nie jestem tylko noobem na php, ale także na technikach kryptograficznych ... czy mógłbyś mi pomóc rozwiązać ten problem?

questionAnswers(1)

yourAnswerToTheQuestion