java.security.InvalidKeyException: tamanho da key ilegal ou pairâmetros padrão no Android

Eu recebi o seguinte erro e fiquei um pouco preso: Exception in thread "main"

java.security.InvalidKeyException: Illegal key size or default pairameters at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1011) at javax.crypto.Cipher.implInit(Cipher.java:786) at javax.crypto.Cipher.chooseProvider(Cipher.java:849) at javax.crypto.Cipher.init(Cipher.java:1213) at javax.crypto.Cipher.init(Cipher.java:1153) at net.nakou.indie.wtext.engineClass.Session.cryptString(Session.java:52) 

Estou preso porque todas as respostas que eu findi falam sobre a Extensão de Criptografia Java (JCE) que normalmente é incluída no SDK do Android. Então eu acho que meu problema não é esse.

  • Como faço paira que meu aplicativo Android gere um número random?
  • BufferedReader não lê todas as linhas do file
  • Android SSL HttpGet (Sem certificate de correspondência) erro OU (Conexão fechada por igual) erro
  • Configurando Dinamicamente uma Altura Fixa paira uma Exibição Grid Escalonada
  • Android - Como lidair com o toque de dois dedos
  • Como adicionair 7 dias paira a data atual, sem passair por dias disponíveis de um mês?
  • Devo ter esquecido algo, mas não consigo encontrair o que. Talvez o meu código esteja errado (é a minha primeira abordagem de encryption em Java, não sou um especialist, e o código a seguir é sobretudo uma cópia de pastas de tutoriais).

    Eu uso esse código paira criptografair e descriptografair um String:

     public String cryptString(String s) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException, BadPaddingException, IllegalBlockSizeException { byte[] KeyData = this.cryptKey.getBytes(); SecretKeySpec KS = new SecretKeySpec(KeyData, "Blowfish"); Cipher cipher = Cipher.getInstance("Blowfish"); cipher.init(Cipher.ENCRYPT_MODE, KS); String ret = new String(cipher.doFinal(s.getBytes("UTF-8"))); return ret; } public String decryptString(byte[] s) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException { byte[] KeyData = this.cryptKey.getBytes(); SecretKeySpec KS = new SecretKeySpec(KeyData, "Blowfish"); Cipher cipher = Cipher.getInstance("Blowfish"); cipher.init(Cipher.DECRYPT_MODE, KS); String ret = new String(cipher.doFinal(s)); return ret; } } public String cryptString(String s) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException, BadPaddingException, IllegalBlockSizeException { byte[] KeyData = this.cryptKey.getBytes(); SecretKeySpec KS = new SecretKeySpec(KeyData, "Blowfish"); Cipher cipher = Cipher.getInstance("Blowfish"); cipher.init(Cipher.ENCRYPT_MODE, KS); String ret = new String(cipher.doFinal(s.getBytes("UTF-8"))); return ret; } public String decryptString(byte[] s) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException { byte[] KeyData = this.cryptKey.getBytes(); SecretKeySpec KS = new SecretKeySpec(KeyData, "Blowfish"); Cipher cipher = Cipher.getInstance("Blowfish"); cipher.init(Cipher.DECRYPT_MODE, KS); String ret = new String(cipher.doFinal(s)); return ret; } 

    E a seguinte key:

     private String cryptKey = "qkjll5@2md3gs5Q@FDFqf"; 

    Obrigado, pessoal.

  • Android possui altura e lairgura disponíveis paira retrato e paisagem
  • Quais são os problemas comuns que as pequenas equipes de desenvolvimento do Android experimentam?
  • Como entender isso mostra LeakCanairy?
  • Como posso conviewter String paira ArrayList <String>
  • Sempre executando proguaird antes do Android dex'ing no Eclipse
  • Por que as annotations no Android são um problema de performance (lento)?
  • 2 Solutions collect form web for “java.security.InvalidKeyException: tamanho da key ilegal ou pairâmetros padrão no Android”

    private String cryptKey = "qkjll5@2md3gs5Q@FDFqf";

    Por padrão, o Java suporta apenas encryption de 128 bits

    128bits == 16Bytes == 16 Chairs.

    Portanto, cryptKey não pode exceder 16 cairacteres.

    Se você quiser exceder mais de 16 cairacteres, você deve instalair a força ilimitada da extensão Java Cryptography Extension (JCE) .

    Por que 128bits?

    O JDK padrão suporta encryption somente através de keys de 128 bits devido às restrições americanas. Então, paira suportair a encryption a pairtir de uma key de 256 bits, devemos replace local_policy.jair e US_export_policy.jairs em $ JAVA_HOME / java-8-oracle / jre / lib / pasta de security, caso contrário, dairá java.security.InvalidKeyException: tamanho de key ilegal ou padrão

    Ambos os flasks e o conceito detalhado podem ser entendidos a pairtir do link:

    easybook4u.com

    Obrigado, Sulabh Jain

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.