Questão nº 38

Questão de Tecnologia da Informação · FCC TRT-12 2023 (nº 38)

FCC2023Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Ever comentário ↓

Atenção: Para responder às questões de números 37 e 38, examine o programa C# abaixo.

using System;
using System.Security.Cryptography;
using System.Text;

class Program{
    static void Main(){

        string senha = "Tribunal Regional do Trabalho 12a região";
        string senhaCriptografada = CriptografarSenha(senha);

        Console.WriteLine($"Senha: {senha}");
        Console.WriteLine($"Senha Criptografada: {senhaCriptografada}");
    }

    static string CriptografarSenha(string senha){

        using (SHA256 sha256 = SHA256.Create()){

            byte[] bytes = Encoding.UTF8.GetBytes(senha);
            I
            ......

            StringBuilder builder = new StringBuilder();
            for (int i = 0; i < hashBytes.Length; i++)
                builder.Append(hashBytes[i].ToString("x2"));

            return builder.ToString();
        }
    }
}

Considerando que o programa C# seja executado em condições ideais, para que a senha criptografada seja gerada e impressa corretamente, a lacuna I deve ser preenchida com:

Este texto de apoio vale também pra questão nº 37.

Resposta comentada

Gabarito Alternativa E

Hashing é um processo que transforma qualquer dado (como uma senha) em uma sequência de caracteres de tamanho fixo, chamada hash. Essa transformação é unidirecional, o que significa que é muito difícil reverter o hash para obter o dado original. O SHA256 é um algoritmo de hashing popular usado para verificar a integridade de dados e armazenar senhas de forma segura, pois ele cria um "resumo" único para cada entrada.

  • (A) Incorreta: SHA256.GenerateHash não é um método válido para a classe SHA256 ou para uma instância dela. A classe SHA256 não possui um método estático chamado GenerateHash.
  • (B) Incorreta: Embora sha256.ComputeHash(bytes) seja a chamada de método correta, a declaração do tipo byte[] para a variável hashBytes está faltando. A linha deveria ser byte[] hashBytes = ....
  • (C) Incorreta: A armadilha aqui é o nome do método. Embora use a instância correta (sha256) e declare o tipo corretamente (byte[]), o método GenerateHash não existe. O método correto para computar o hash é ComputeHash. Esta é uma pegadinha comum que troca o nome do método por um similar.
  • (D) Incorreta: SHA256.Hash(bytes) é um método estático que existe em versões mais recentes do .NET (a partir do .NET 5), mas ele não se encaixa no contexto do código que cria uma instância de SHA256 (sha256.Create()). Além disso, a declaração do tipo byte[] está faltando.
  • (E) Correta: Esta alternativa preenche a lacuna corretamente. byte[] hashBytes declara uma nova variável do tipo array de bytes. sha256 é a instância do algoritmo SHA256 que foi criada. ComputeHash(bytes) é o método correto da instância sha256 que recebe o array de bytes da senha e calcula o hash, retornando-o como um novo array de bytes.

Fonte: FCC TRT-12 2023 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 003). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho