无法使用java JCE

时间:2017-08-08 14:29:42

标签: java security encryption

我正在使用加密技术来加密我的数据。 我使用的是java 1.8.0_131和RSA/ECB/PKCS1Padding算法版本2.

在我的本地环境中,我可以加密并找到提供程序。 在我使用相同java版本的测试环境中,我得到以下异常:

No installed provider supports this key: (null)

我们使用字节数组进行加密 密钥不为空

我们做了什么:

    public static byte[] encrypt(PublicKey publicKey, String algorithm, int keyVersion, byte[] clearData) throws EncryptionException {

       try {

           Cipher cipher = Cipher.getInstance(algorithm);
           cipher.init(Cipher.ENCRYPT_MODE, publicKey);
           return addHeader(keyVersion, cipher.doFinal(clearData));

       } catch (Throwable t) {
           logger.error("Failed to encrypt data", t);
           throw new EncryptionException("Failed to encrypt data", t);
       }
   }

为什么在我的测试环境中无法找到提供商?

由于

1 个答案:

答案 0 :(得分:0)

公钥为null,因为公钥的路径不正确。 我们的日志只写入非空的公钥版本。 所以我们错过了那个。