Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8236400

java.security.spec.InvalidKeySpecException: Password is not ASCII

XMLWordPrintable

      A DESCRIPTION OF THE PROBLEM :
      Password-Based Encryption causes the following exception when password contains character '§':
      java.security.spec.InvalidKeySpecException: Password is not ASCII

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1. compile PBERepro.java: javac -d . PBERepro.java
      2. run it: java -cp . el.info.pbe PBERepro


      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      No exception
      ACTUAL -
      Exception:
      java.security.spec.InvalidKeySpecException: Password is not ASCII
      at com.sun.crypto.provider.PBEKey.<init>(PBEKey.java:65)
      at com.sun.crypto.provider.PBEKeyFactory.engineGenerateSecret(PBEKeyFactory.java:219)
      at javax.crypto.SecretKeyFactory.generateSecret(SecretKeyFactory.java:336)
      at el.info.pbe.PBERepro.main(PBERepro.java:14)

      ---------- BEGIN SOURCE ----------
      package el.info.pbe;

      import javax.crypto.SecretKey;
      import javax.crypto.SecretKeyFactory;
      import javax.crypto.spec.PBEKeySpec;

      public class PBERepro {

      public static void main(String[] args) throws Exception {
      String pwdString = "h§o";
      PBEKeySpec pbeKeySpec = new PBEKeySpec(pwdString.toCharArray());

      SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("PBEWithHmacSHA512AndAES_128");
      SecretKey pbeKey = secretKeyFactory.generateSecret(pbeKeySpec);
      }
      }
      ---------- END SOURCE ----------

      FREQUENCY : always


            valeriep Valerie Peng
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: