433 votes

Java Security: taille de clé illégale ou paramètres par défaut?

J'avais posé une question à ce sujet plus tôt, mais il n'a pas répondu à droite et conduit nulle part. J'ai donc précisé quelques détails sur le problème et j'aimerais vraiment entendre vos idées sur comment je pourrais résoudre ce problème ou ce que je devrais essayer.

J'ai Java 1.6.0.12 installé sur mon serveur Linux et le code soufflet fonctionne parfaitement.

String key = "av45k1pfb024xa3bl359vsb4esortvks74sksr5oy4s5serondry84jsrryuhsr5ys49y5seri5shrdliheuirdygliurguiy5ru";
try {
    Cipher c = Cipher.getInstance("ARCFOUR");

    SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "ARCFOUR");
    c.init(Cipher.DECRYPT_MODE, secretKeySpec);

    return new String(c.doFinal(Hex.decodeHex(data.toCharArray())), "UTF-8");

} catch (InvalidKeyException e) {
    throw new CryptoException(e);
}

Aujourd'hui j'ai installé Java 1.6.0.26 sur mon serveur et quand j'essaie de lancer mon application, j'obtiens l'exception suivante. J'imagine que ça a quelque chose à voir avec le Java de configuration de l'installation, car il travaille dans la première, mais ne fonctionne pas dans la version ultérieure..

Caused by: java.security.InvalidKeyException: Illegal key size or default parameters
    at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
    at my.package.Something.decode(RC4Decoder.java:25) ~[my.package.jar:na]
    ... 5 common frames omitted

La ligne 25est: c.init(Cipher.DECRYPT_MODE, secretKeySpec);

Notes:
* java.de sécurité sur le serveur de 1.6.0.12 java répertoire match presque complètement avec la 1.6.0.26 java.fichier de sécurité. Il n'y a pas des fournisseurs supplémentaires dans le premier.
* la question précédente est ici.

750voto

James Black Points 26183

Très probablement, vous n'avez pas la force illimitée de fichiers installé maintenant.

Vous pouvez avoir besoin de télécharger ce fichier:

Java Cryptography Extension (JCE) Force Illimitée de la Compétence de la Politique de Fichiers 6

Java Cryptography Extension (JCE) Force Illimitée de la Compétence de la Politique de Fichiers 7 Télécharger

Installer le fichier dans ${java.home}/jre/lib/security/.

57voto

Saad Malik Points 152

Les fichiers de juridiction JRE / JDK / Java 8 peuvent être trouvés ici:

Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 Télécharger

Comme James a dit ci-dessus:
Installez les fichiers dans ${java.home}/jre/lib/security/ .

43voto

C Deepak Points 434

Pour JAVA 7, le lien de téléchargement est jce-7-download

Copiez les deux fichiers jars téléchargés dans Java \ jdk1.7.0_10 \ jre \ lib \ security
Prenez une sauvegarde des anciens pots pour être sur un côté plus sûr.

16voto

user665928 Points 121

"Java Cryptography Extension (JCE) Fichiers de stratégie de compétence de force illimités 6"

http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

16voto

bowmanb Points 599

J'ai vécu la même erreur lors de l'utilisation de Windows 7 x64, Eclipse, et JDK 1.6.0_30. Dans le dossier d'installation du JDK il y a un jre le dossier. Cela m'a jeté dans un premier temps que j'étais en ajoutant ladite pots pour le JDK lib/security dossier avec pas de chance. Chemin d'accès complet:

C:\Program Files\Java\jdk1.6.0_30\jre\lib\security

Télécharger et extraire les fichiers contenus dans l' jce le dossier de l'archive dans ce dossier.

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