O nome completo do MD5 é Algoritmo Message-Digest 5. Message-Digest geralmente se refere à transformação Hash de uma string de bytes (Mensagem), que consiste em transformar uma string de bytes de qualquer comprimento em um número inteiro grande de um determinado comprimento. MD5 converte uma "string de bytes" de qualquer comprimento em um número inteiro grande de 128 bits e é um algoritmo de conversão de string irreversível. Em outras palavras, mesmo se você vir o programa de origem e a descrição do algoritmo, não poderá converter um valor MD5. convertido de volta para a string original, matematicamente falando, porque existem infinitas strings originais, o que é um pouco como uma função matemática que não possui uma função inversa.
Copie o código do código da seguinte forma:
importar java.security.MessageDigest;
classe pública Test_MD5{
public final static String MD5(String s) {
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
tentar {
byte[]strTemp=s.getBytes();
//Cria um objeto MessageDigest usando MD5
MessageDigestmdTemp=MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[]md=mdTemp.digest();
intj=md.comprimento;
charstr[]=newchar[j*2];
tinta=0;
for(inti=0;i<j;i++){
byteb=md[i];
//System.out.println((int)b);
//Criptografa o número (int) b com bytes duplos
str[k++]=hexDigits[b>>4&0xf];
str[k++]=hexDigits[b&0xf];
}
returnnovaString(str);
}catch(Exceção){returnnull;}
}
//teste
publicstaticvoidmain(String[]args){
System.out.println("criptografia MD5 do caidao:/n"+Test_MD5.MD5("caidao"));
System.out.println("//www.VeVB.COm/ após criptografia MD5:/n"+Test_MD5.MD5("//www.VeVB.COm/"));
}
}
Uma aplicação típica do MD5 é gerar uma impressão digital em uma mensagem (string de bytes) para evitar que ela seja "adulterada". Por exemplo, você escreve um parágrafo em um arquivo chamado readme.txt e gera um valor MD5 para este readme.txt e o grava. Então você pode espalhar este arquivo para outras pessoas. Se outros modificarem o arquivo Qualquer conteúdo, você o encontrará. quando você recalcula o MD5 deste arquivo. Se houver uma agência de certificação terceirizada, o uso do MD5 também pode evitar o "repúdio" do autor do arquivo. Este é o chamado aplicativo de criptografia digital.
MD5 também é amplamente utilizado na tecnologia de criptografia e descriptografia. Em muitos sistemas operacionais, a senha do usuário é armazenada na forma de valor MD5 (ou outros algoritmos semelhantes. Quando o usuário faz login, o sistema calcula a senha inserida pelo usuário). O valor MD5 é então comparado com o valor MD5 salvo no sistema, e o sistema não “sabe” qual é a senha do usuário.
MD5 é teoricamente um hash unilateral, e alguns hackers usam um método chamado “execução de dicionário” para quebrar essa senha. Existem duas maneiras de obter um dicionário. Uma é uma coleção diária de tabelas de strings usadas como senhas e a outra é gerada usando um método de permutação e combinação. Primeiro, use o programa MD5 para calcular os valores MD5 desses itens do dicionário. e, em seguida, use os valores MD5 do destino pesquisados neste dicionário.
Mesmo que se presuma que o comprimento máximo da senha seja 8, e a senha só possa conter letras e números, num total de 26+26+10=62 caracteres, o número de entradas no dicionário criado pela combinação é P (62,1)+P(62, 2)....+P(62,8), que já é um número astronômico. Armazenar este dicionário requer um grupo de discos de nível TB, e este método também tem um pré-requisito, que é obter a conta de destino. Isso só é possível se a senha tiver um valor MD5.