KeyStore ks = KeyStore.getInstance("JCEKS");
ks.load(null, null);
SecretKey skInput = new SecretKeySpec("input".getBytes(), "DESede");
SecretKeyEntry skeInput = new KeyStore.SecretKeyEntry(skInput);
ks.setEntry("input_key", skeInput, new KeyStore.PasswordProtection("banana".toCharArray()));
FileOutputStream fos = new FileOutputStream("my.keystore");
pambks.store(fos, "password".toCharArray());
fos.flush();
fos.close();
Код, показанный выше, пытается кодировать input
в SecretKey и хранить его в хранилище ключей. Код, показанный ниже, - это то, как я извлекаю ключ из хранилища ключей. Но я не знаю, как его декодировать до первоначальной ценности?Как кодировать и декодировать SecretKey в JAVA?
FileInputStream fin = new FileInputStream("my.keystore");
KeyStore ks = KeyStore.getInstance("JCEKS");
ks.load(fin, "password".toCharArray());
SecretKeyEntry ske = (SecretKeyEntry) readks.getEntry("input_key", new KeyStore.PasswordProtection("banana".toCharArray()));
SecretKey sk = ske.getSecretKey();
Я не был уверен, что это правильный ли способ сделать шифрование и дешифрование для SecretKey, пожалуйста, поправьте меня, если я ошибаюсь.