Engenharia Múltipla Escolha

Ao efetuar a persistência em banco de dados, pode ser necessário ocultar informações de determinados campos, com a possibilidade de recuperação posterior, ou seja, devem ser adotados algoritmos de criptografia base à biblioteca CryptoJs, como podemos utilizar o algoritmo AES no desenvolvimento com React Native?

Ao efetuar a persistência em banco de dados, pode ser necessário ocultar informações de determinados campos, com a possibilidade de recuperação posterior, ou seja, devem ser adotados algoritmos de criptografia base à biblioteca CryptoJs, como podemos utilizar o algoritmo AES no desenvolvimento com React Native?

  1. É necessário instanciar um objeto do tipo Cipher, passagem do algoritmo AES, chave e IV, e utilizar os métodos encrypt e decrypt do objeto.
  2. Não é possível trabalhar com o algoritmo AES no React Native, pois a biblioteca CryptoJS não fornece um gestor apropriado para ele.
  3. Devemos invocar o método encrypt, fornecendo o valor original, chave AES e IV, ou o método decrypt, com o valor criptografado, chave e IV, sempre por meio do módulo AES.
  4. Basta invocar a classe Base64, pois os valores já são codificados no formato AES.
  5. Precisamos utilizar o método digestStringAsync, fornecendo chave AES e IV, tanto para a criptografia quanto para a recuperação da informação.

Resolução completa

Explicação passo a passo

C
Alternativa C

Alternativa C - Devemos invocar o método encrypt, fornecendo o valor original, chave AES e IV, ou o método decrypt, com o valor criptografado, chave e IV, sempre por meio do módulo AES.

Análise da Questão

A questão aborda o uso da biblioteca CryptoJS para criptografia simétrica (algoritmo AES) em aplicativos desenvolvidos com React Native. Para responder corretamente, é necessário entender como essa biblioteca opera e diferenciar os tipos de operações de segurança (Criptografia vs. Hashing vs. Codificação).

Por que a Alternativa C é a correta?

A biblioteca CryptoJS fornece uma interface de programação (API) baseada em módulos. Para o algoritmo AES (Advanced Encryption Standard), que é um algoritmo de criptografia simétrica, o fluxo padrão é:

  1. Criptografia (Encrypt): O desenvolvedo deve chamar o método encrypt disponível no módulo AES. Ele recebe como entrada o texto plano (valor original), a chave secreta e, opcionalmente, parâmetros adicionais como o vetor de inicialização (IV).
  2. Descriptografia (Decrypt): Para recuperar a informação, utiliza-se o método decrypt do mesmo módulo, fornecendo o texto cifrado e a mesma chave utilizada anteriormente.

A sintaxe típica na biblioteca é similar a esta:
\text{const cipherText} = \text{AES.encrypt}(\text{data}, \text{key});
\text{const plainText} = \text{AES.decrypt}(\text{cipherText}, \text{key});

A alternativa C descreve exatamente esse processo de invocação dos métodos diretos do módulo.

Por que as outras alternativas estão incorretas?

  • Alternativa A: Sugere "instanciar um objeto do tipo Cipher". A API pública do CryptoJS não exige que o usuário crie instâncias manualmente de classes internas complexas; ele utiliza os métodos estáticos ou funções de conveniência (encrypt/decrypt) diretamente.
  • Alternativa B: Afirma que não é possível trabalhar com AES no React Native usando CryptoJS. Isso é falso. Existem bibliotecas de polyfill (como react-native-crypto-js) que permitem que o CryptoJS funcione perfeitamente no ambiente móvel.
  • Alternativa D: Menciona a classe Base64. O Base64 é um sistema de codificação, não de criptografia. Ele transforma dados binários em texto legível, mas não garante confidencialidade (qualquer pessoa pode decodificar sem uma chave).
  • Alternativa E: Cita o método digestStringAsync. Este método é utilizado para Hashing (geração de resumo digital, como SHA-256), que é uma função de mão única (não reversível), diferente da criptografia AES que permite a recuperação da informação original.

Resumo

Para utilizar o algoritmo AES com a biblioteca CryptoJS no React Native, a prática correta é acessar o módulo AES e utilizar seus métodos de encriptação e decriptação passados os dados e a chave adequada.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Engenharia

Ver mais Engenharia resolvidas

Tem outra questão de Engenharia?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.