Red de Respuestas Legales - Consulta de información - Cómo implementar el código de verificación usando Java

Cómo implementar el código de verificación usando Java

En la actualidad, los módulos de registro, inicio de sesión o liberación de información de muchos sistemas han agregado funciones de código de verificación aleatoria para evitar el uso de programas de registro automático o programas de liberación automática.

El código de verificación en realidad consiste en seleccionar aleatoriamente algunos caracteres y mostrarlos en la página en forma de imágenes. Si los caracteres de la imagen deben enviarse al mismo tiempo, si los caracteres enviados son diferentes de los caracteres almacenados en la sesión del servidor, la información enviada se considera inválida. Para evitar que el programa analice automáticamente la imagen, generalmente se generan aleatoriamente algunas líneas de interferencia o caracteres distorsionados en la imagen para aumentar la dificultad del reconocimiento automático del código de verificación.

Aquí usamos java para implementar el código de verificación.

& lt% @ tipo de contenido de página = imagen/importación JPEG = Java awt * imagen Java awt * utilidad Java * javax imageio * % & gt; p>

color Obtener rand color(int fc int BC){//Obtener un color aleatorio dentro del rango dado.

Aleatorio Aleatorio = new Aleatorio();

if(fc>)fc=;

if(BC>)BC=;

int r = fc+siguienteInt aleatorio(BC fc);

int g = fc+siguienteInt aleatorio(BC fc

int b = fc+siguienteInt aleatorio(BC fc); );

Devuelve nuevo color (r g b);

}

% & gt

& lt%

//Establecer la página para que no se almacene en caché

encabezado del conjunto de respuestas (Pragma No cache);

respuesta setHeader (control de caché sin caché

respuesta); setDateHeader(expired);

//Crear imagen en memoria

int ancho = alto =

imagen almacenada en búfer imagen = nueva imagen almacenada en búfer (ancho alto imagen almacenada en búfer TIPO _ INT _ RGB);

//Obtener contexto de gráficos

gráficos g = imagen obtener gráficos();

//Generar clase aleatoria

Random Random = new Random();

//Establecer color de fondo

g set color(getRandColor());

g fillRect(width y altura);

//Establecer fuente

g setFont(Nueva fuente (Times New Roman Font PLAIN));

//Las líneas de interferencia aleatoria hacen que el código de autenticación en la imagen difícil de detectar por otros programas.

g set color(getRandColor());

for(int I = i<i++)

{

int x = nextInt aleatorio(ancho);

int y = nextInt aleatorio(alto);

int XL = nextInt aleatorio()

int yl = nextInt aleatorio( );

g drawLine(x y x+XL y+yl);

}

//Obtener el código de autenticación generado aleatoriamente (número)

cadena codeList = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz;

cadena sRand =;

for(int I = i<i++){

int a = aleatorio nextInt( codeList length());

string rand = codeList substring(a a+);

sRand+= rand;

//in El código de verificación se muestra en la imagen.

g set Color(new Color(+random nextInt()+random nextInt()+random nextInt()); //Los colores generados al llamar a la función son los mismos, tal vez porque las semillas también lo son cerrar, Por lo que solo se puede generar directamente.

g drawstring (rand * I+);

}

// Almacena el código de autenticación en la sesión.

atributo del conjunto de sesión (rand sRand);

//La imagen tiene efecto

g dispose();

//Salida la imagen a la página

ImageIO write(respuesta de imagen JPEG obtiene flujo de salida());

out clear();

out = pageContext push body() ;

Lishi Xinzhi/Article/program/Java/hx/201311/25536