从 jck 密钥库导出密钥
Export secret key from jck key store
我们有一个包含密钥的 jck 密钥库 (jceks) 格式。它是使用 keytool 命令生成的
keytool -genseckey -alias mykey -keyalg AES -keysize 256
-storetype jceks -keystore mykeystore.jks
我们需要与另一个应用程序共享这个,他们似乎在使用 jck 商店方面有限制。他们要求将密钥导出并提供给他们。
我们尝试了一些工具,但无法导出密钥。是否有实现此目的的命令或解决方法?
keytool 不支持导出密钥。您可以使用 KeyStore
api 来执行此操作。
KeyStore ks = KeyStore.getInstance("JCEKS");
ks.load(new FileInputStream(new File("KEYSTORE_PATH")), "PASSWORD".toCharArray());
SecretKey key = (SecretKey) ks.getKey("ALIAS", "PASSWORD".toCharArray());
System.out.println(new String(Base64.encode(key.getEncoded())));
如果双击它,KeyStore Explorer 会将密钥显示为十六进制字符串:
我们有一个包含密钥的 jck 密钥库 (jceks) 格式。它是使用 keytool 命令生成的
keytool -genseckey -alias mykey -keyalg AES -keysize 256 -storetype jceks -keystore mykeystore.jks
我们需要与另一个应用程序共享这个,他们似乎在使用 jck 商店方面有限制。他们要求将密钥导出并提供给他们。
我们尝试了一些工具,但无法导出密钥。是否有实现此目的的命令或解决方法?
keytool 不支持导出密钥。您可以使用 KeyStore
api 来执行此操作。
KeyStore ks = KeyStore.getInstance("JCEKS");
ks.load(new FileInputStream(new File("KEYSTORE_PATH")), "PASSWORD".toCharArray());
SecretKey key = (SecretKey) ks.getKey("ALIAS", "PASSWORD".toCharArray());
System.out.println(new String(Base64.encode(key.getEncoded())));
KeyStore Explorer 会将密钥显示为十六进制字符串: