3
Java 키 스토어에서 테스트 목적으로 HMacSHA256 키를 생성하고 저장하고 싶습니다.프로그래밍 방식으로 Java에서 HMacSHA256 키를 생성하고 저장하는 방법?
나는 일반적으로 키 도구를 통해이 작업을 수행 할 것입니다 :
SecretKey key = new SecretKeySpec("secret".getBytes(), "HmacSHA256");
을 그 키가 불행하게도 PrivateKey
따라서의 인스턴스가 아닌 :
keytool -genseckey -keystore keystore.jceks -storetype jceks -storepass secret -keyalg HMacSHA256 -keysize 2048 -alias HS256 -keypass secret
지금까지 내가 사용하여 키를 생성 할 수 있다는 것을 발견 키 저장 실패 :
KeyStore ks = ...
ks.setEntry("HS256", new SecretKeyEntry(key), new PasswordProtection("secret".toCharArray()));
예외 :
java.security.KeyStoreException: Cannot store non-PrivateKeys
at sun.security.provider.JavaKeyStore.engineSetKeyEntry(JavaKeyStore.java:258)
at sun.security.provider.JavaKeyStore$JKS.engineSetKeyEntry(JavaKeyStore.java:56)
at java.security.KeyStoreSpi.engineSetEntry(KeyStoreSpi.java:550)
at sun.security.provider.KeyStoreDelegator.engineSetEntry(KeyStoreDelegator.java:179)
at sun.security.provider.JavaKeyStore$DualFormatJKS.engineSetEntry(JavaKeyStore.java:70)
at java.security.KeyStore.setEntry(KeyStore.java:1557)
at com.gentics.mesh.SecretKeyTest.testSHA(SecretKeyTest.java:31)
저는 SecretKey
이 대칭 키를 나타냅니다. PrivateKey
은 PublicKey
및 개인 키 쌍의 일부입니다. 단일 대칭 키를 저장하는 방법이 있습니까?