Java 公钥即使在篡改后仍然有效

Java 公钥即使在篡改后仍然有效,java,x509certificate,Java,X509certificate,好的,我有一个公钥,如下所示: MIIDejCCAmKgAwIBAgICAyEwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAk1Z...../orSwUq 我正在使用以下代码生成证书 CertificateFactory cf = CertificateFactory.getInstance("X509"); StringBuilder pkcs8Lines = new StringBuilder(); BufferedReader rdr =

好的,我有一个公钥,如下所示:

MIIDejCCAmKgAwIBAgICAyEwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAk1Z...../orSwUq
我正在使用以下代码生成证书

CertificateFactory cf = CertificateFactory.getInstance("X509");
StringBuilder pkcs8Lines = new StringBuilder();
BufferedReader rdr = new BufferedReader(new StringReader(certificateKey));
String line;
while ((line = rdr.readLine()) != null) {
pkcs8Lines.append(line);
}
String pkcs8Pem = pkcs8Lines.toString();
pkcs8Pem = pkcs8Pem.replaceAll("\\s+", "");
byte[] certificateData = Base64.getDecoder().decode(pkcs8Pem);
x509Cert = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(certificateData));
和使用

 Signature verifier = Signature.getInstance("SHA1withRSA", "BC");
验证数据。但是,如果我将公钥从

miidejccamkgawibagigicayewdqyjkozihvcnaqelbqawgy8xczajbgnvbaytak1z.../orSwUq

MIIDejCCAmKgAwIBAgICAyEwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAk1Z...../orSw11
我仍然知道证书是有效的。我能够验证我的签名数据。这是不正确的,因为公钥被篡改。我错过什么了吗