Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在从base64解码后返回锁定的密钥库实例?_Java_Base64_Decode_Encode_Keystore - Fatal编程技术网

Java 如何在从base64解码后返回锁定的密钥库实例?

Java 如何在从base64解码后返回锁定的密钥库实例?,java,base64,decode,encode,keystore,Java,Base64,Decode,Encode,Keystore,我正在编写与密钥库和证书相关的JAVA项目。我写了一个方法来;提供证书集时生成动态密钥库,将密钥库编码为Base64编码字符串,将Base64字符串解码为PKCS12密钥库实例。 在生成密钥库时,我为它提供一个密码,如下所示 Security.addProvider(new BouncyCastleProvider()); KeyStore keystore = KeyStore.getInstance("PKCS12"); keystore.load(null, null); keysto

我正在编写与密钥库和证书相关的JAVA项目。我写了一个方法来;提供证书集时生成动态密钥库,将密钥库编码为Base64编码字符串,将Base64字符串解码为PKCS12密钥库实例。 在生成密钥库时,我为它提供一个密码,如下所示

Security.addProvider(new BouncyCastleProvider());

KeyStore keystore = KeyStore.getInstance("PKCS12");
keystore.load(null, null);

keystore.setCertificateEntry(aliasName1, certificate1);
keystore.setCertificateEntry(aliasName2, certificate2);

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
char[] keystorePasswordAsCharArray = keystorePassword.toCharArray();

OutputStream outputStreamForEncode = Base64.getEncoder().wrap(byteArrayOutputStream);
keystore.store(outputStreamForEncode, keystorePasswordAsCharArray); 
.
.
.
KeyStore outputKeystore = KeyStore.getInstance("PKCS12");

InputStream inputStream = new ByteArrayInputStream(base64EncodedKeystoreString.getBytes());
InputStream inputStreamForDecode = Base64.getDecoder().wrap(inputStream);

char[] keystorePasswordAsCharArray = keystorePassword.toCharArray();
outputKeystore.load(inputStreamForDecode, keystorePasswordAsCharArray);
在那之后,当解码时,我也提供一个密码给它,如下所示

Security.addProvider(new BouncyCastleProvider());

KeyStore keystore = KeyStore.getInstance("PKCS12");
keystore.load(null, null);

keystore.setCertificateEntry(aliasName1, certificate1);
keystore.setCertificateEntry(aliasName2, certificate2);

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
char[] keystorePasswordAsCharArray = keystorePassword.toCharArray();

OutputStream outputStreamForEncode = Base64.getEncoder().wrap(byteArrayOutputStream);
keystore.store(outputStreamForEncode, keystorePasswordAsCharArray); 
.
.
.
KeyStore outputKeystore = KeyStore.getInstance("PKCS12");

InputStream inputStream = new ByteArrayInputStream(base64EncodedKeystoreString.getBytes());
InputStream inputStreamForDecode = Base64.getDecoder().wrap(inputStream);

char[] keystorePasswordAsCharArray = keystorePassword.toCharArray();
outputKeystore.load(inputStreamForDecode, keystorePasswordAsCharArray);
然后输出密钥库实例被解锁,我从方法返回实例

但是我想返回锁定的密钥库实例。我该怎么做


  • 已编辑


你能分享一个最小的、可重复的例子吗?以上三行代码很难理解您的问题。你能分享一个最小的,可重复的例子吗?以上三行代码很难理解您的问题。