如何将.cer文件加载和修改到内存中

时间:2014-02-20 18:22:01

标签: java x509certificate

以下代码将test.cer文件(即X509证书)加载到内存中。当它现在在内存中时,是否可以修改它的字段,对吧?很容易输出任何字段,例如load.getPublicKey(),但我想更改公钥中的第一个字节,并在更改后再次输出。我该怎么办?

File f= new File("Users/Desktop/JavaFolder/test.cer");    
CertificateFactory cf = CertificateFactory.getInstance("X.509");
BufferedInputStream in = new BufferedInputStream(new FileInputStream(f));
while (in.available() > 0) {
    Certificate load = cf.generateCertificate(in); 
}
in.close();

1 个答案:

答案 0 :(得分:0)

获得Certificate后:

Certificate cert = ....
PublicKey publicKey = cert.getPublicKey();
byte[] originalPublicKey = publicKey.getEncoded();
byte[] modifiedPublicKey = java.util.Arrays.copyOf(originalPublicKey , originalPublicKey .length);// make a copy
modifiedPublicKey[0] = !modifiedPublicKey[0]; // modify something
print(originalPublicKey); // your "print" method - implement it how you like it e.g., Arrays.toString(originalPublicKey)
print(modifiedPublicKey ); // your "print" method - implement it how you like it e.g., Arrays.toString(modifiedPublicKey)

请参阅javadoc参考