我正在使用加密技术来加密我的数据。
我使用的是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);
}
}
为什么在我的测试环境中无法找到提供商?
由于
答案 0 :(得分:0)
公钥为null,因为公钥的路径不正确。 我们的日志只写入非空的公钥版本。 所以我们错过了那个。