如何获得证书的BASE64编码

这几天项目中需要使用到BASE64格式的证书信息,我就从IE中导出证书,里面有可选项,你可以选择不需要导出证书私钥,然后选择导出BASE64编码格式X.509的证书,即.CER格式的证书,导出到本地之后,使用UE之类的工具打开之后就可以看见里面的信息,

 

类似这种

-----BEGIN CERTIFICATE-----
MIICsDCCAhmgAwIBAgIMFIQFnae2+U9IIPuaMA0GCSqGSIb3DQEBBQUAMCUxCzAJ
BgNVBAYTAkNOMRYwFAYDVQQDDA1zdWJjYV9yZXF1ZXN0MB4XDTA5MDYwMzA1Mjc1
MVoXDTEyMDYwMjA1Mjc1MVowZzELMAkGA1UEBgwCQ04xDjAMBgNVBAoMBUNDQkNB
MSwwKgYJKoZIhvcNAQkBFh0zMjMzMzMzMzU1NTU1NTU1NTU1MkBUZXN0LmNvbTEa
MBgGA1UEAwwRMzMzMzMzNTU1NTU1NTU1NTUwgZ8wDQYJKoZIhvcNAQEBBQADgY0A
MIGJAoGBALe2c6Xnczi5X3c82diz0X3MrGUh1AZS1BKQjjZXZrrEEWCtJIq9/XIW
BGCKaUZOCeV7zXcCbSouICbnVu1s1CUz7clGmvljR2B1FNjVAVHQR5hVfq35uchy
k7O/n/Kcp+owArLMn19f25PAGV0YwBRlCwwi4ou5FAH8Ksh/vZJZAgMBAAGjgaIw
gZ8wDwYDVR0TAQEABAUwAwEBADAgBgNVHSUBAQAEFjAUBggrBgEFBQcDAgYIKwYB
BQUHAwQwDgYDVR0PAQEABAQDAgDAMBQGCWCGSAGG+EIBAQEBAAQEAwIAgDAiBgNV
HSMBAQAEGDAWgBRRU03IrzHxxZseQw6rDn09jk4dDTAgBgNVHQ4BAQAEFgQUrflQ
vpbZNm7dCj6lVIGWWtjrKqgwDQYJKoZIhvcNAQEFBQADgYEATsO4BprAfPWpO35d
Ar2bXeTS4YwCC7UFRefWGl8v0wQf71n4qP/ma+JJl7TJ0VbPEjq9/zbhWB2+ZAbE
om531y9bBaId/3/8XY/J11t5+cPg4U79js7bK1DvlxMbUhh9nQD9VZeL8fKLXbU3
SviMO2Xe4Jw0TkOh2s7R2T2jHqQ=
-----END CERTIFICATE-----

 

这个就是证书的base64编码

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,数字证书通常包含公钥信息,这些信息是以Base64编码的形式存储的字符串。如果你想将这个字符串转换为`PublicKey`对象,可以按照以下步骤操作: 1. 导入所需的库:首先,你需要导入`java.security.cert.X509Certificate`和`java.security.PublicKey`等相关的Java安全包。 ```java import java.security.*; import java.security.cert.X509Certificate; import javax.crypto.Cipher; ``` 2. 解码Base64字符串:使用`Base64.getDecoder()`方法解码证书中的公钥字符串。 ```java String encodedPublicKey = "..."; // 你的Base64编码的公钥字符串 byte[] decodedBytes = Base64.getDecoder().decode(encodedPublicKey); ``` 3. 创建X509Certificate对象:虽然这不是必需的,但有时证书信息可能一起包含在X509Certificate对象中。如果你有证书,可以这样做: ```java X509Certificate certificate = ...; // 如果你有证书实例 byte[] certificateBytes = certificate.getEncoded(); ``` 4. 从证书或解码后的字节数组创建PublicKey对象:你可以使用`CertificateFactory`和`KeySpec`来解析这些字节并获取公钥。 ```java try { CertificateFactory cf = CertificateFactory.getInstance("X.509"); if (certificate != null) { // 使用证书 byte[] certBytes = certificate.getEncoded(); X509Certificate x509Cert = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(certBytes)); PublicKey publicKey = x509Cert.getPublicKey(); } else { // 使用解码后的字节数组 publicKey = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(decodedBytes)); } } catch (Exception e) { throw new RuntimeException("Failed to parse public key", e); } ``` 现在,`publicKey`变量就包含了从字符串转换得到的`PublicKey`对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值