Como gerar uma chave secreta em Java uma vez e usar essa chave em dois programas diferentes

Meu objetivo é escrever um programa em Java para criptografar um arquivo de texto (cipher text) usandoAES algorithm. E, em seguida, escreva outro programa para descriptografar esse arquivo criptografado (cipher text) para obter o texto simples de volta. Eu quero usar a mesma chave (mesma chave, gerar uma vez, salvá-lo em algum lugar e usá-lo no programa de criptografia e descriptografia) para o processo de criptografia e descriptografia. Se eu gerar chave e fazer a criptografia e descriptografia linha por linha no mesmo programa, então funciona perfeitamente. Aqui está o trecho de código de trabalho para isso:

        String strDataToEncrypt = new String();
        String strCipherText = new String();
        String strDecryptedText = new String();

        KeyGenerator keyGen = KeyGenerator.getInstance("AES");
        keyGen.init(128);
        SecretKey secretKey = keyGen.generateKey();

        Cipher aesCipher = Cipher.getInstance("AES");
        aesCipher.init(Cipher.ENCRYPT_MODE,secretKey);

        strDataToEncrypt = "any text input";
        byte[] byteDataToEncrypt = strDataToEncrypt.getBytes();
        byte[] byteCipherText = aesCipher.doFinal(byteDataToEncrypt); 
        strCipherText = new BASE64Encoder().encode(byteCipherText);
        System.out.println("cipher text: " +strCipherText);
        aesCipher.init(Cipher.DECRYPT_MODE,secretKey,aesCipher.getParameters());
        byte[] byteDecryptedText = aesCipher.doFinal(new BASE64Decoder().decodeBuffer(strCipherText));
        strDecryptedText = new String(byteDecryptedText);
        System.out.println("plain text again: " +strDecryptedText);

Mas, eu preciso ter dois programas diferentes (arquivos java) para criptografia e descriptografia. Então, eu tenho que de alguma forma gerar uma chave e salvar isso em algum lugar. Em seguida, use a mesma chave para o programa de criptografia e descriptografia. Como eu posso fazer isso?

EDIT_1

KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(128);
SecretKey secretKey = keyGen.generateKey();
byte[] encoded = secretKey.getEncoded(); 
System.out.println("key: "+encoded);// key: [B@52b2a2d8

Eu posso obter o valor da chave codificada usando o programa acima. Mas minha pergunta é como gerar o SecretKey usando esse valor no meu programa de descriptografia?

questionAnswers(2)

yourAnswerToTheQuestion