import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.security.InvalidKeyException; import java.security.KeyStore; import java.security.KeyStore.Entry; import java.security.KeyStore.Entry.Attribute; import java.security.KeyStore.PrivateKeyEntry; import java.security.KeyStore.SecretKeyEntry; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.UnrecoverableEntryException; import java.security.cert.Certificate; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.Enumeration; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; public class KeyStoreTest { public static void main(String [] args) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException, UnrecoverableEntryException { final byte key[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }; final String password = "123456"; KeyStore ks = KeyStore.getInstance("pkcs12"); ks.load(new FileInputStream("test.p12"), password.toCharArray()); KeyStore.ProtectionParameter protParam = new KeyStore.PasswordProtection(password.toCharArray()); KeyStore.SecretKeyEntry skEntry = new KeyStore.SecretKeyEntry(new SecretKeySpec(key, "AES")); ks.setEntry("alias1", skEntry, protParam); try (FileOutputStream fos = new FileOutputStream("test.p12")) { ks.store(fos, password.toCharArray()); } catch (Exception e) { e.printStackTrace(); } } }