java.security.InvalidKeyException : Illegal key size - After Windows OS security patch

标签 java encryption cryptography

我正在尝试使用以下方法加密字符串。这个方法以前是成功的。在 Windows 操作系统安全补丁之后,现在我收到“java.security.InvalidKeyException:非法 key 大小”

此外,我还在 C:\Program Files (x86)\Java\jdk1.7.0_67\jre\lib\security 下添加了 local_policy 和 US_export_policy jar 文件。我的操作系统是Windows7 64位。

当我运行 Java main 方法时它可以工作,但是当我运行 tomcat 应用程序时我遇到异常。

public static String encryptData() throws Exception{
        byte[] saltBytes = "myegaes256encryption".getBytes("UTF-8");
        SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
        PBEKeySpec keySpec = new PBEKeySpec("myeg@1234".toCharArray(), saltBytes, 65536, 256);
        IvParameterSpec ivParameterSpec = new IvParameterSpec("myegaes256ivspec".getBytes("UTF-8"));
        SecretKey secretKey = secretKeyFactory.generateSecret(keySpec);
        SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey.getEncoded(), "AES");

        //Encryption starts here
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
        cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);

        byte[] encryptedBytes = cipher.doFinal("DD3E5B7BB7D3036FE7CB557B4FEEB05F".getBytes("UTF-8"));
        return new Base64().encodeAsString(encryptedBytes);
    }

异常(exception):

java.security.InvalidKeyException: Illegal key size at javax.crypto.Cipher.a(Unknown Source) at javax.crypto.Cipher.a(Unknown Source) at javax.crypto.Cipher.a(Unknown Source) at javax.crypto.Cipher.init(Unknown Source) at javax.crypto.Cipher.init(Unknown Source)

最佳答案

您需要将策略文件放入 jre/lib/security/,而不是 jdk/lib/

关于java.security.InvalidKeyException : Illegal key size - After Windows OS security patch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49975231/

相关文章:

java - 蓝牙服务器和客户端的UUID

java.sql.SQLException : Exhausted Resultset

javascript - 是使用 AES 或 SHA256 的 sjcl.encrypt

c - 在 C 程序中,我尝试使用 ECB 模式加密 AES 128

java - BadPaddingException:GCM 中的 mac 检查失败

java - 将复选框添加到 ListView 中

java - 使用 Cipher 和 AES 解密产生 208 个解密字节,后跟垃圾

encryption - TLS : AES-256 or Camellia-256? 哪个算法更强

Python crypt 模块——盐的正确用法是什么?

java - AVL Tree节点旋转导致节点消失