No desenvolvimento de vários sistemas de aplicativos, geralmente são necessárias informações do usuário e as senhas de usuário são armazenadas em muitos lugares. Obviamente, não é seguro armazenar senhas de usuário diretamente no servidor. Este artigo apresenta brevemente o algoritmo de criptografia MD5 comumente usado no trabalho, na esperança de atrair atenção.
(I) Resumo da notícia Introdução
Uma mensagem Digest é a impressão digital digital de um bloco de dados. Ou seja, um bloco de dados de qualquer comprimento é calculado para produzir uma impressão digital exclusiva (para SHA1, é produzir uma matriz binária de 20 bytes). A Mensagem Digest é uma técnica usada em combinação com o código de autenticação da mensagem para garantir a integridade da mensagem. O algoritmo de função de hash unidirecional é usado principalmente, que pode ser usado para verificar a integridade das mensagens e salvá-las diretamente no texto através de senhas de hash. Atualmente, os algoritmos amplamente utilizados incluem MD4, MD5 e SHA-1.
Uma mensagem Digest tem duas propriedades básicas:
Duas mensagens diferentes são difíceis de gerar o mesmo resumo
É difícil gerar uma mensagem para um resumo especificado, e o resumo especificado pode ser inferido a partir da mensagem.
Representantes: SHA1 do Instituto Nacional de Padrões e Tecnologia e MD5 por Ronald rebateu do MIT
(Ii) criptografar a corda
/ ** Use MD5 para criptografia* @param str string a ser criptografada* @return string criptografada* @throws nosuchalgorithMexception Não existe tal algoritmo para gerar mensagens Digest* @THOWSOWSHOWSONCHENCHENCIMENTENCODEXCEMCECTIONS*/ public String // Determine o método de cálculo MessAgedigest md5 = Messagedigest.getInstance ("md5"); Base64Encoder base64en = new base64Encoder (); // String criptografada String Newsstr = base64en.encode (md5.digest (str.getBytes ("utf-8"))); Retornar Newsstr; } Chamando a função:
String str = "0123456789"
System.out.println (coderbymd5 (str));
Saída: eb5ejf1ptwaxm4bijspyxw ==
(Iii) Verifique se a senha está correta
Como o MD5 é baseado no princípio do Message Digest, o recurso básico do Digest Message é que é difícil calcular mensagens de mensagem com base no resumo. Portanto, para verificar se a senha está correta, é necessário recalcular a senha de entrada (mensagem da mensagem) e compará -la com o resumo armazenado no banco de dados (ou seja, o resumo armazenado no banco de dados é na verdade a senha do usuário). Se os dois digestos forem iguais, significa que a senha está correta e diferente, significa que a senha está errada.
/**Judge whether the user's password is correct* @param newpasswd Password entered by the user* @param oldpasswd Password stored in the database - - summary of the user's password* @return * @throws NoSuchAlgorithmException * @throws UnsupportedEncodingException */ public boolean checkpassword(String newpasswd,String oldpasswd) throws NoSuchAlgorithmException, UnsupportEdEncodingException {if (EncoderByMd5 (newPasswd) .equals (Oldpasswd)) Retorne true; mais retornar falso; }PS: Em relação à tecnologia de criptografia, este site também fornece as seguintes ferramentas de criptografia para sua referência:
Ferramenta de criptografia online do MD5: http://tools.vevb.com/password/createmd5password
Ferramenta de criptografia/descriptografia Escape: http://tools.vevb.com/password/escapepwd
Ferramenta de criptografia sha1 online: http://tools.vevb.com/password/sha1encode
Link curto (URL curto) Ferramenta de geração online: http://tools.vevb.com/password/dwzcreate
Link curto (URL curto) Ferramenta de restauração online: http://tools.vevb.com/password/unshorturl
Gerador de senha de alta resistência: http://tools.vevb.com/password/createstrongpassword
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.