xyb*_*rek 1 java base64 bouncycastle x509
PrivateKeya 转成Stringwith的方法有哪些
-----BEGIN PRIVATE KEY-----并且-----END PRIVATE KEY-----可以用作要上传到服务器的私钥文件。
其实现是sun.security.rsa.RSAPrivateCrtKeyImpl和getFormat()是PKCS#8。
小智 5
我正在使用Bouncy Castle 1.57。
您可以使用该类org.bouncycastle.openssl.jcajce.JcaPEMWriter:
StringWriter sw = new StringWriter();
JcaPEMWriter writer = new JcaPEMWriter(sw);
writer.writeObject(privateKey);
writer.close();
System.out.println(sw.getBuffer().toString());
Run Code Online (Sandbox Code Playgroud)
输出将不完全是你所要求的(它有RSA PRIVATE KEY而不只是PRIVATE KEY):
StringWriter sw = new StringWriter();
JcaPEMWriter writer = new JcaPEMWriter(sw);
writer.writeObject(privateKey);
writer.close();
System.out.println(sw.getBuffer().toString());
Run Code Online (Sandbox Code Playgroud)
如果你想要确切的BEGIN PRIVATE KEY(没有RSA),我找不到直接的方法,所以你必须使用replaceAll(不漂亮,但无论如何):
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCLvmDlBlvtN+hJjGy46Q5EyFoJmpoReiXvOVx98BQblqWe7698
zwEJTf/9cfmg1M+qXhPqIPSWU61hPuh/GOZIfQAzAoGnCvZP4v8nGVhcYnnrxCQA
Pd7jdxPmQGbtvTW0cbJpBK44KknHAVdlwDZVqkweTE9c48jHXIHPNX6THwIDAQAB
AoGAczy/cp3X2Lst1tjyH1ow5g/CEAFp49eyyJ+o4kHEkyub0IEfWfDqjd3AqCQB
EtvrlDaYfY5HpF/ErljOKWFDJG8ealhGgZgLYhy7QCs2CUeUN1SkULvxcqLTjzD0
qQAfA1Xm3TYwIV4RB6TSbkr+iJeviz2FxcqjJWAyqh5bVAECQQDhI1/CppGMWPnN
pMBqK0kyk+yc00KB/xbyqzWVgV/de+5uU6YHmXwW29NdgrLt3+QXMwkLlDML7lBn
jawJ1KmfAkEAnuZPm7WYzsu/WvW6iMwBJDNiMC88Q6RPdlboY8mPNysewlAZubJ+
bd+l0E9P6Kdoi4mKqmWK91vRwambFaimgQJBAJPnF0va/ZdEBKfSag3VbfrqLvE/
4FtiZ4L4cvVKzt3EQvj7vwETFfA2bf7qk/2trjyHbJPMwlQ+NVgyPCkhKmUCQCMc
PsDoKmCfUqP1ogbyFNp75BlDhqxnlQtP/r913QhSpdRHwLdwglEi1s+lhsGgpBAZ
DyPBlig8CKgjItpxToECQGDvZdny/lwUOhlJaJYcpS4pKOG0Qzz5QyTdFjkzJlTo
tDElfWCoAc68YUU1N/XvHRr7P+2jLdh1+kjF28f0zlM=
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
输出:
String pem = sw.getBuffer().toString().replaceAll("RSA PRIVATE", "PRIVATE");
System.out.println(pem);
Run Code Online (Sandbox Code Playgroud)
您只需确保您的代码能够正确解析此内容(我不确定 Bouncy Castle 是否会在没有 的情况下解析此内容RSA)。
| 归档时间: |
|
| 查看次数: |
3873 次 |
| 最近记录: |