En el desarrollo de varios sistemas de aplicación, a menudo se necesita información del usuario, y las contraseñas de los usuarios se almacenan en muchos lugares. Obviamente, no es seguro almacenar contraseñas de usuario directamente en el servidor. Este artículo presenta brevemente el algoritmo de cifrado MD5 comúnmente utilizado en el trabajo, con la esperanza de llamar la atención.
(I) Introducción de resumen de noticias
Una digestión de mensajes es la huella digital digital de un bloque de datos. Es decir, se calcula un bloque de datos de cualquier longitud para producir una huella digital única (para SHA1 es para producir una matriz binaria de 20 bytes). Message Digest es una técnica utilizada en combinación con el código de autenticación de mensajes para garantizar la integridad del mensaje. El algoritmo de función hash unidireccional se usa principalmente, que se puede utilizar para verificar la integridad de los mensajes y guardarlos directamente en texto a través de contraseñas hash. Actualmente, los algoritmos ampliamente utilizados incluyen MD4, MD5 y SHA-1.
Un Digest de mensajes tiene dos propiedades básicas:
Dos mensajes diferentes son difíciles de generar el mismo resumen
Es difícil generar un mensaje para un resumen especificado, y el resumen especificado se puede inferir del mensaje.
Representantes: SHA1 del Instituto Nacional de Normas y Tecnología y MD5 por Ronald Rivest del MIT
(Ii) cifre la cadena
/** Use MD5 para el cifrado* @param str string para estar encriptado* @return cadena cifrada* @throws nosuchalgorithMexxception No hay tal algoritmo para generar mensajes digest* @throws unsupportedEncodingException*/public string encoderBymd5 (string str) lanzada el método de cálculo MessageGest MD5 = MessageDigest.getInstance ("MD5"); Base64Encoder base64en = new Base64Encoder (); // cadena cifrada String Newsstr = Base64en.encode (MD5.Digest (str.getBytes ("UTF-8"))); devolver Newsstr; } Llamando a la función:
Cadena str = "0123456789"
System.out.println (EncoderByMd5 (Str));
Salida: eB5EJF1PTWAXM4BIJSPYXW ==
(Iii) Verifique si la contraseña es correcta
Debido a que MD5 se basa en el principio de Mensaje Digest, la característica básica de Message Digest es que es difícil calcular mensajes de mensajes basados en el resumen. Por lo tanto, para verificar si la contraseña es correcta, es necesario recalcular la contraseña de entrada (mensaje de mensaje) y compararla con el resumen almacenado en la base de datos (es decir, el resumen almacenado en la base de datos es en realidad la contraseña del usuario). Si los dos digestiones son iguales, significa que la contraseña es correcta y diferente, significa que la contraseña es incorrecta.
/**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)) return true; else devuelve falso; }PD: Con respecto a la tecnología de cifrado, este sitio también proporciona las siguientes herramientas de cifrado para su referencia:
Herramienta de cifrado en línea MD5: http://tools.vevb.com/password/createmd5password
Herramienta de cifrado/descifrado de escape: http://tools.vevb.com/password/escapepwd
Herramienta de cifrado SHA1 en línea: http://tools.vevb.com/password/sha1encode
Enlace corto (URL corta) Herramienta de generación en línea: http://tools.vevb.com/password/dwzcreate
Enlace corto (URL corto) Herramienta de restauración en línea: http://tools.vevb.com/password/unshorturl
Generador de contraseñas de alta resistencia: http://tools.vevb.com/password/createstrontepassword
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.