47 votes

Vérifier si la cryptographie illimitée est disponible

Comment puis-je vérifier, en code Java, si la JVM actuelle dispose d'une cryptographie à force illimitée ?

47voto

Dans le même esprit que la réponse de Dan Cruz, mais avec une seule ligne de code et sans passer par les exceptions :

 boolean limit = Cipher.getMaxAllowedKeyLength("RC5")<256;

Ainsi, un programme complet pourrait être :

 import javax.crypto.Cipher;

public class TestUCE {
  public static void main(String args[]) throws Exception {
    boolean unlimited =
      Cipher.getMaxAllowedKeyLength("RC5") >= 256;
    System.out.println("Unlimited cryptography enabled: " + unlimited);
  }
}

41voto

Igor Metz Points 411

Si vous êtes sous Linux et que vous avez installé le JDK (mais que Beanshell n'est pas disponible), vous pouvez vérifier avec la commande runscript fournie avec le JDK.

 jrunscript -e 'exit (javax.crypto.Cipher.getMaxAllowedKeyLength("RC5") >= 256 ? 0 : 1);'; echo $?

Cela renvoie un 0 si la cryptographie illimitée est disponible, ou 1 si elle n'est pas disponible. Zéro est la valeur de retour de « succès » correcte pour les fonctions du shell, et une valeur différente de zéro indique un échec.

5voto

ccit-spence Points 52

Ceci est une version complète de copier-coller pour permettre les tests

 import javax.crypto.Cipher;
import java.security.NoSuchAlgorithmException;

class Test {
    public static void main(String[] args) {
        int allowedKeyLength = 0;

        try {
            allowedKeyLength = Cipher.getMaxAllowedKeyLength("AES");
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

        System.out.println("The allowed key length for AES is: " + allowedKeyLength);
    }
}

Courir

javac Test.java

java Test

Si JCE ne fonctionne pas, sortie : 128 JCE fonctionne quelque chose comme : 2147483647

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X