【问题标题】:Spring Security: Simple Encryption / decryption not working: InvalidKeyExceptionSpring Security:简单加密/解密不起作用:InvalidKeyException
【发布时间】:2018-03-18 02:42:27
【问题描述】:

我正在尝试编写一个非常简单的程序来加密和解密字符串:

    String password = "kdfljxcasd";
    String encodeThat = "Hello World + some special chars!^^-";
    String salt = KeyGenerators.string().generateKey();
    BytesEncryptor encryptor = Encryptors.standard(password, salt);

    // breakpoint steping doesn't reach that point - it gets stuck here for some reason... 
    byte[] encrypted = encryptor.encrypt(encodeThat.getBytes());
    byte[] decrypted = encryptor.decrypt(encrypted);

    System.out.println("Before encryption: " + encodeThat);     
    System.out.println("Encrypted: " + encrypted.toString());       
    System.out.println("After encryption: " + decrypted.toString());

但由于某种原因,我从未得到加密值。当我打电话给enryptor.encrypt() 时,它永远不会到达那个点。

我收到以下异常:

'Unable to initialize due to invalid secret key' java.lang.IllegalArgumentException: Unable to initialize due to invalid secret key

我做错了什么?

【问题讨论】:

    标签: java spring-boot encryption spring-security spring-data-jpa


    【解决方案1】:

    好的,经过几个小时的搜索,我终于找到了解决方案:

    显然我没有安装正确的无限力量政策。

    我就是这样解决的:

    1. 从以下位置下载政策:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

    2. 解压并将 local_policy.jarUS_export_policy.jar 放入 ${jdk -path}/jre/lib/security 并覆盖现有文件。 (注意:不要把它放在 JRE 文件夹中。你必须把它放在 jdk/jre/... - 这花了我几个小时 :))

    3. 重启服务器就可以了!

    希望有所帮助:)

    【讨论】:

    • 有没有办法在不添加外部 jar 的情况下做到这一点?
    • 我不知道,抱歉。但是您需要一个没有外部 jar 的解决方案吗?
    【解决方案2】:

    从 Java 8u151 开始,您可以使用属性解决此问题:

    Security.setProperty("crypto.policy", "unlimited");

    【讨论】:

      【解决方案3】:

      尝试升级到较新的 java 8 JDK 版本。

      对我来说,我尝试了 2 个版本:

      • 1.8.131 - 失败
      • 1.8.201 - 成功

      【讨论】:

        【解决方案4】:

        遇到这个问题并通过从JDK 1.8 切换到Adopt Open JDK 8 来解决它

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-10
          • 2016-11-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-12
          相关资源
          最近更新 更多