1. Descripción general del código de verificación de imágenes:
Muchos sitios web tienen la implementación
efecto:
Para mejorar la seguridad del sistema
Con el código de verificación, podemos pedirle al usuario que ingrese el texto en la imagen después de ingresar el nombre de usuario, la contraseña y otra información. Después de que el usuario envíe, el sistema primero extraerá el código de verificación que acaba de generar a partir de la sesión y lo comparará con el código de verificación ingresado por el usuario. Si la comparación es igual, significa que el usuario inició sesión desde la interfaz de inicio de sesión. De lo contrario, significa que el usuario es ilegal. Utilizamos el código de verificación para garantizar que el sistema debe registrarse con éxito antes de usarlo, para evitar que el usuario ingrese directamente a la página que se accede en la barra de direcciones.
En otras palabras, utilizando el código de verificación, el usuario primero debe iniciar sesión desde la interfaz de inicio de sesión.
2. Método de implementación de verificación
Se utilizan dos clases clave, y estas dos clases están relacionadas con la salida de la imagen.
BufferedImage IM = New BufferedImage (60,20, BufferedImage.Type_int_rgb); // El primer parámetro IM representa un objeto de imagen // JPG representa un tipo de salida de imagen // Response.getOutPutStream () representa un flujo de salida de respuesta, es decir, si accede a este servlet. El servlet mostrará la imagen a usted imageio.write (im, "jpg", respuesta.getOutputStream ());
3. Pasos de implementación
1. Use BufferedImage para generar una imagen, luego use la salida de ImageIO y especifíquela como formato JPG
BufferedImage IM = New BufferedImage (60,20, BufferedImage.Type_int_rgb); // El primer parámetro IM representa un objeto de imagen // JPG representa un tipo de salida de imagen // Response.getOutPutStream () representa un flujo de salida de respuesta, es decir, si accede a este servlet. El servlet mostrará la imagen a usted imageio.write (im, "jpg", respuesta.getOutputStream ());
2. Obtenga el objeto de dibujo de la imagen
Graphics g = im.getGraphics();
3. Complete el área de dibujo
RM RM = new Random (); color C = nuevo color (RM.NextInt (255), RM.NextInt (255), RM.NextInt (255)); G.SetColor (C); // llenar el color de la imagen completa G.Fillrect (0, 0, 60, 20);
4. Números de salida a la imagen
G.SetColor (nuevo color (RM.NextInt (255), RM.NextInt (255), RM.NextInt (255))); G.SetFont (nuevo Font ("Lishu chino", Font.Bold | Font.italic, 28)); G.Drawstring ("8", 1, 18);5. 4 dígitos aleatorios
// Generar aleatoriamente números de 4 dígitos para (int i = 0; i <4; i ++) {g.setColor (nuevo color (rm.NextInt (255), rm.NextInt (255), rm.NextInt (255))); G.SetFont (nueva fuente ("Gungsuh", font.bold | font.italic, 22)); G.DrawString (""+RM.NextInt (10), (i*15) +2, 18);}6. Generar aleatoriamente chino
String Str = "Aquellos que tienen truenos en el pecho y las caras como un lago plano pueden llamarse general"; para (int i = 0; i <4; i ++) {g.setColor (nuevo color (rm.NextInt (255), rm.NextInt (255), RM.NextInt (255))); G.SetFont (nueva fuente ("Gungsuh", font.bold | font.italic, 15)); G.DrawString (""+Str.Charat (rM.NextInt (str.length ())), (i*15) +2, 18);}7. Cómo introducir este código de verificación en la página:
<img src="/ImageServlet">
8. Guarde los números para la comparación de inicio de sesión
// Guarde los cuatro números obtenidos en la sesión para que cuando el usuario inicie sesión, se use para comparar request.getSession (). SetAttribute ("Piccode", sbf.ToString ());9. Verificación de inicio de sesión
Primero, es necesario verificar si el usuario existe en la base de datos. Si existe, también es necesario verificar si el código de verificación ingresado es consistente.
Después de que la verificación sea exitosa, debe enviarse a la página de operación relevante.
Ejemplo de código:
boolean b_exist = login.validate (username, passwd); // Si el usuario existe si (b_exist) {string pic = ""+request.getSession (). getAttribute ("piccode"); // Compare el código de verificación if (! Pic.equals ("") && pic.equals (código)) {// almacenamiento de información del usuario en la sesión para otro uso request.getSession (). Setattribute ("username", username); respuesta.sendedirect ("index.jsp"); }}Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo sea de ayuda para el estudio o el trabajo de todos. ¡También espero apoyar a Wulin.com más!