我正在使用Java代码生成CSR,我已从在线网站journaldev.com中获取了代码
public byte[] generateCSR(final String sigAlg,final PublicKey publicKey,final PrivateKey
privateKey,final String organisationUrl) {
final ByteArrayOutputStream outStream = new ByteArrayOutputStream();
final printstream printstream = new printstream(outStream);
final X500Name x500Name = new X500Name("CN=" + organisationUrl);
final Signature signature = Signature.getInstance(sigAlg);
signature.initSign(privateKey);
final pkcs10 pkcs10 = new pkcs10(publicKey);
pkcs10.encodeAndSign(x500Name,signature);
pkcs10.print(printstream);
return outStream.toByteArray();
如您所见,上面我使用了printstream构造函数,该构造函数将ByteArrayOutputStream作为参数。由于该声纳表示不使用此构造函数,因为该构造函数将使用系统的默认字符集,所以任何人都知道如何解决此问题?
我尝试过作为替代代码:
final Writer writer = new OutputStreamWriter(outStream,StandardCharsets.UTF_8);
final OutputStream out = new WriterOutputStream(writer,StandardCharsets.UTF_8);
final printstream printstream = new printstream(out,Boolean.FALSE,"UTF-8");
此代码运行,但是返回空结果。你能帮我这个忙吗?