当我从crt证书文件(RSA sig alg:sha256RSA 2048bits)读取公钥时:
FileInputStream fis = new FileInputStream(PATH_TO_CERTIFICATE_FILE);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate cert = (Certificate) cf.generateCertificates(fis).iterator().next();
RSAPublicKey pk = (RSAPublicKey) cert.getPublicKey();
byte[] pkValue = pk.getEncoded()
我将得到结果(pkValue变量)数组,开头有额外的48字节。 为什么这样,我对CertificateFactory的正确理由是否正确?
(目前我的解决方法是从pkValue数组中删除前48个字节。然后使用公钥加密+使用私钥解密工作正常)