使用openssl以编程方式读取java密钥库文件jceks

时间:2014-09-16 11:15:03

标签: java encryption openssl aes keystore

我正在尝试在java中进行AES加密/解密

我使用KeyGenerator生成了密钥。我使用java密钥库存储密钥。

        Key myKey = KeyGenerator.getInstance("AES").generateKey();

        KeyStore.ProtectionParameter protParam =
                new KeyStore.PasswordProtection("secretpass".toCharArray());

        //For writing the secret Key
        KeyStore.SecretKeyEntry skEntry =
                new KeyStore.SecretKeyEntry((SecretKey)myKey);
        FileOutputStream fout = new FileOutputStream("test.ks");

        KeyStore ksout = KeyStore.getInstance("JCEKS");
        ksout.load(null,"changeit".toCharArray());
        ksout.setEntry("secretalias", skEntry, protParam);

我想以编程方式使用openssl从此文件中获取此密钥。可能吗?如果是这样,请给我一些关于如何进行的建议。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

这是不可能的,因为默认密钥库(jks)是Java使用的专有格式。

要交换密钥,您需要一些可移植的东西,如PKCS#11(至少在Java 8中支持KeyStore格式)。