Criptografia CryptoJS AES e descriptografia Java AES

Só estou perguntando isso, porque já li muitas postagens há 2 dias sobre criptografia AES de criptografia e, quando pensei que estava conseguindo, percebi que não estava conseguindo.

Esta postagem é a mais próxima do meu problema, tenho exatamente o mesmo problema, mas não há resposta:

Criptografia do AES CryptoJS e incompatibilidade do valor de descriptografia do JAVA AES

Eu tentei fazer isso de várias maneiras, mas não entendi direito.

Primeiramente

Estou recebendo a string já criptografada (só obtive o código para ver como eles estavam fazendo isso), portanto, modificar a maneira de criptografia não é uma opção. É por isso que todas as perguntas semelhantes não são tão úteis para mim.

Segundo

Eu tenho acesso à chave secreta e posso modificá-la (portanto, ajustar o comprimento é uma opção, se necessário).

A criptografia é feita no CryptoJS e eles enviam a cadeia criptografada como um parâmetro GET.

GetParamsForAppUrl.prototype.generateUrlParams = function() {
const self = this;
 return new Promise((resolve, reject) => {
   const currentDateInMilliseconds = new Date().getTime();
   const secret = tokenSecret.secret;
   var encrypted = CryptoJS.AES.encrypt(self.authorization, secret);
   encrypted = encrypted.toString();
   self.urlParams = {
     token: encrypted,
     time: currentDateInMilliseconds
   };
   resolve();
 });
};

Posso facilmente descriptografar isso em javascript usando CryptoJS com:

var decrypted = CryptoJS.AES.decrypt(encrypted_string, secret);
    console.log(decrypted.toString(CryptoJS.enc.Utf8)); 

Mas não quero fazer isso em Javascript, por motivos de segurança, por isso estou tentando descriptografar isso em Java:

String secret = "secret";
byte[] cipherText = encrypted_string.getBytes("UTF8");
SecretKey secKey = new SecretKeySpec(secret.getBytes(), "AES");
Cipher aesCipher = Cipher.getInstance("AES");
aesCipher.init(Cipher.DECRYPT_MODE, secKey);
byte[] bytePlainText = aesCipher.doFinal(byteCipherText);
String myDecryptedText = = new String(bytePlainText);

Antes de ter alguma idéia do que estava fazendo, tentei decodificar a base64, adicionando um pouco de IV e muitas coisas que li, é claro que nada funcionou.

Mas depois que comecei a entender o que estava fazendo, escrevi esse script simples acima e recebi o mesmo erro no post:Comprimento de chave AES inválido

Não sei para onde ir daqui. Depois de ler muito sobre isso, a solução parece ser hash ou padding, mas não tenho controle sobre o método de criptografia, por isso não posso realmente fazer o hash do segredo ou preenchê-lo.

Mas, como eu disse, posso alterar a chave secreta para que ela corresponda a algum comprimento específico, e tentei alterá-la, mas como estou gravando no escuro aqui, não sei realmente se essa é a solução.

Então, minha pergunta basicamente é: se eu recebi a string criptografada (em javascript como o primeiro script) e a chave secreta, existe uma maneira de descriptografá-la (em Java)? Se for o caso, como fazer?

questionAnswers(2)

yourAnswerToTheQuestion