NoSuchAlgorithmException com Crypto

:scrambleup: Estou tentando executar o código abaixo:

[code] try {
// Create the key
KeySpec keySpec = new PBEKeySpec(passPhrase.toCharArray(), salt, iterationCount);
SecretKey key = SecretKeyFactory.getInstance(
"PBEWithMD5AndDES").generateSecret(keySpec);//>>Exceção lançada aqui!!!<<
ecipher = Cipher.getInstance(key.getAlgorithm());
dcipher = Cipher.getInstance(key.getAlgorithm());

        // Prepare the parameter to the ciphers
        AlgorithmParameterSpec paramSpec = new PBEParameterSpec&#40;salt, iterationCount&#41;;

        // Create the ciphers
        ecipher.init&#40;Cipher.ENCRYPT_MODE, key, paramSpec&#41;;
        dcipher.init&#40;Cipher.DECRYPT_MODE, key, paramSpec&#41;;
    &#125; catch &#40;java.security.InvalidAlgorithmParameterException e&#41; &#123;
    &#125; catch &#40;java.security.spec.InvalidKeySpecException e&#41; &#123;
    &#125; catch &#40;javax.crypto.NoSuchPaddingException e&#41; &#123;
    &#125; catch &#40;java.security.NoSuchAlgorithmException e&#41; &#123;
    &#125; catch &#40;java.security.InvalidKeyException e&#41; &#123;
    &#125;[/code]

Ele funciona em uma máquina (com o Eclipse 3.0 e com o MyEclipse - e o JBoss 3) e em outra máquina (só com o Eclipse 3.0), não funciona. Nesta última máquina, eu ganho de presente uma java.security.NoSuchAlgorithmException. Alguma idéia? Algum .jar que pode estar faltando no CLASSPATH desta máquina? Qual? O jce.jar e o sunjce_provider.jar estão nela e no CLASSPATH. Alguma :idea: ?

:arrow: Ah! A parte do stackTrace dela que interessa (que vem logo após a chamada do meu método) está aí:

java.security.NoSuchAlgorithmException&#58; Algorithm PBEWithMD5AndDES not available at javax.crypto.SunJCE_b.a&#40;DashoA6275&#41; at javax.crypto.SecretKeyFactory.getInstance&#40;DashoA6275&#41;

Verifica a versão da jvm delas, a cada minor release a Sun adiciona novos algoritmos.

Nunca sei direito se o Sun Provider está ou não implementando tal algoritmo na tal versão. Como eu tenho de escrever software que funcione na versão 1.3, 1.4.0, 1.4.1, 1.4.2, e se é Sun, ou IBM (como é o caso do Websphere que usa a JVM da IBM ), ou BEA etc. e não quero quebrar a cabeça com isso, simplesmente uso o BouncyCastle http://www.bouncycastle.org e fixo uma versão (por exemplo, 1.24). Aí sei exatamente o que está suportado ou não. ( http://www.bouncycastle.org/specifications.html diz exatamente o que está suportado na 1.24 )