Julgue o item seguinte, a respeito de segurança e criptograf...

Próximas questões
Com base no mesmo assunto
Q996793 Programação
Julgue o item seguinte, a respeito de segurança e criptografia.
Para gerar um código hash em Java, é correto utilizar o método digest da classe java.security.MessageDigest, informando-se como parâmetro, no momento da sua instanciação, o nome do hash a ser gerado, como, por exemplo, o MD5 e o SHA-1.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: C - certo

A questão aborda o tema da criptografia e a geração de códigos hash no contexto da linguagem de programação Java. Entender essa questão envolve conhecimentos sobre segurança da informação, especificamente sobre funções hash e como elas são implementadas em Java através da classe java.security.MessageDigest.

As funções hash são algoritmos que recebem uma entrada de dados e produzem uma sequência de caracteres de tamanho fixo, independente do tamanho da entrada, conhecida como valor hash ou digest. Esse valor tem a característica de ser único para cada entrada única; ou seja, duas entradas diferentes não devem produzir o mesmo valor hash. Além disso, as funções hash são projetadas de forma que seja inviável reverter o valor hash para obter a entrada original, conferindo assim uma propriedade de segurança à função.

No Java, a classe MessageDigest é utilizada para criar valores hash. Para gerar um valor hash, é necessário instanciar um objeto dessa classe, especificando o nome do algoritmo desejado como parâmetro. Algoritmos comuns utilizados para esse fim incluem MD5 e SHA-1, embora deva-se notar que o MD5 e o SHA-1 não são mais considerados seguros contra todas as formas de ataques e, portanto, usos mais recentes em segurança tendem a preferir algoritmos da família SHA-2 ou SHA-3.

Após instanciar o objeto MessageDigest com o algoritmo desejado, utiliza-se o método digest() para calcular o valor hash dos dados desejados. O método pode receber como entrada um array de bytes, que representa os dados a serem transformados em hash. O resultado obtido é então o valor hash dos dados em formato de array de bytes, que pode ser convertido para uma representação em hexadecimal ou base64, dependendo de como se deseja visualizar ou armazenar o valor hash.

Portanto, a afirmativa está correta, pois descreve de maneira precisa o processo de utilização da classe java.security.MessageDigest para criar um valor hash em Java, incluindo a especificação do algoritmo no momento da instanciação do objeto.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Item correto.

Exemplo de código:

package teste;

  

import java.io.UnsupportedEncodingException;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

public class TesteAlgoritmo {

  public static void main(String args []) throws NoSuchAlgorithmException, 

     UnsupportedEncodingException {

          String senha = "admin";

          MessageDigest algorithm = MessageDigest.getInstance("MD5");

          byte messageDigest[] = algorithm.digest(senha.getBytes("UTF-8"));

           System.out.println(messageDigest);

     }    

}

go @head!*

Certo.

Fonte para mais esclarecimentos:

"...o nome do hash a ser gerado, como, por exemplo, o MD5 e o SHA-1..." , MD5 e SHA-1 são TIPOS de hash, questão ERRADA, mas a banca acha que nome e tipo são sinônimos, cespe sendo cespe desde o descobrimento do Brasil, segue o baile.

Esta classe MessageDigest fornece aos aplicativos a funcionalidade de um algoritmo de “digerir” mensagens, como SHA-1 ou SHA-256. Digestores de mensagem (message digests) são funções hash unidirecionais seguras que pegam dados de tamanho arbitrário e produzem um valor hash de comprimento fixo.

MessageDigest md = MessageDigest.getInstance("SHA-256");

Toda implementação da classe MessageDigest pode suportar os seguintes algoritmos padrões: MD5, SHA-1, SHA-256.

Certo.

Fonte: https://docs.oracle.com/javase/8/docs/api/index.html?java/security/MessageDigest.html

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo