elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
26 Mayo 2012, 15:27  


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  captchas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: captchas  (Leído 921 veces)
peib0l
Wiki

Conectado Conectado

Mensajes: 3.122


vista mi blog ^.^


Ver Perfil
captchas
« en: 20 Diciembre 2011, 13:41 »

hola amigos, estoy con el tema de los captcha y me preguntaba como se hacen estos



y la otra pregunta es como se implementan los captcha ya creados como el de google?

Gracias!


En línea

El As del Club Paris


Desconectado Desconectado

Mensajes: 1.815


Ver Perfil WWW
Re: captchas
« Respuesta #1 en: 20 Diciembre 2011, 14:32 »

Podes usar reCaptcha (el mas comun) que es de Google, es por ejemplo, lo que usa el host de imagenes de este foro.

Saludos


En línea

sudo suck --mycock -o force
EFEX


Desconectado Desconectado

Mensajes: 327


"Dinero Facil"


Ver Perfil WWW
Re: captchas
« Respuesta #2 en: 22 Diciembre 2011, 18:06 »

Traté de hacer un script pero creo que la libreria GD no soporta animaciones gif?

Código
<?php
function crearCaptcha($largo = 8){
   $captcha = imagecreatefromgif("bg.gif");
   $posicionX=15;
   for($i = 0;$i <$largo;$i++){
       $r=rand(0,255);
       $g=rand(0,255);
       $b=rand(0,255);
       $numero = rand(0,9);
       $posicionY=rand(20,40);
       $colorText = imagecolorallocate($captcha, $r, $g, $b);
       imagestring($captcha, 12, $posicionX, $posicionY, $numero, $colorText);
       $posicionX+=15;
   }
   $black = ImageColorAllocate($captcha,0,0,0);
   ImageFill($captcha,0,0,$black);
   ImageColorTransparent($captcha,$black);
   $superponer = imagecreatefromgif("sub.gif");
   imagecopy( $captcha, $superponer, 0, 0, 0, 0, imagesx( $superponer ), imagesy( $superponer ) );
 
   header("Content-type: image/gif");
   imagegif($captcha);
 
}
crearCaptcha();
?>
 

Animación

Fondo


Resultado  :¬¬

En línea


GITHUB: github.com/empirefx
dark_sargon


Desconectado Desconectado

Mensajes: 532


CJ


Ver Perfil WWW
Re: captchas
« Respuesta #3 en: 22 Diciembre 2011, 22:05 »

http://www.phpclasses.org/package/3163-PHP-Generate-GIF-animations-from-a-set-of-GIF-images.html
En línea

http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.
Anonymous250


Desconectado Desconectado

Mensajes: 346



Ver Perfil
Re: captchas
« Respuesta #4 en: 23 Diciembre 2011, 04:40 »

Anda asi que ese captcha se hace on un gif que interesante. :)
En línea

EFEX


Desconectado Desconectado

Mensajes: 327


"Dinero Facil"


Ver Perfil WWW
Re: captchas
« Respuesta #5 en: 23 Diciembre 2011, 15:13 »


Pero ¿ debo primero tomar los frames animados, ponerle de fondo el captcha a cada uno, gardarlos por frame y despues unirlos con la clase ?
Veo que tiene problemas con la transparencia y la animacion..


v3.0 gifencoder
« Última modificación: 23 Diciembre 2011, 15:20 por EFEX » En línea


GITHUB: github.com/empirefx
dark_sargon


Desconectado Desconectado

Mensajes: 532


CJ


Ver Perfil WWW
Re: captchas
« Respuesta #6 en: 23 Diciembre 2011, 16:58 »

Encontré un script ya hecho. Lo que hace es crear todos los frames en la carpeta 'tmp' y luego construye el GIF y los borra.

Se podría hacer aleatoria la animación para que no sea la misma siempre.


A ver si nos ponemos en la tarea de mejorar la apariencia. Éste tema de las CAPTCHAs es muy interesante.

Acá el script junto con la clase GIFEncoder:
http://www.actimediaonline.com/captchaGIF.zip
En línea

http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.
EFEX


Desconectado Desconectado

Mensajes: 327


"Dinero Facil"


Ver Perfil WWW
Re: captchas
« Respuesta #7 en: 23 Diciembre 2011, 20:05 »

Acá el script junto con la clase GIFEncoder:
http://www.actimediaonline.com/captchaGIF.zip

No me crea el gif por que no me guarda las imagenes en la carpeta tmp ¿por que ?
En línea


GITHUB: github.com/empirefx
peib0l
Wiki

Conectado Conectado

Mensajes: 3.122


vista mi blog ^.^


Ver Perfil
Re: captchas
« Respuesta #8 en: 9 Enero 2012, 13:38 »

Alguno a sacado ya como hacerlos en movimiento?  :P yo sigo en ello pero no se mueve...
En línea

EFEX


Desconectado Desconectado

Mensajes: 327


"Dinero Facil"


Ver Perfil WWW
Re: captchas
« Respuesta #9 en: 10 Enero 2012, 07:52 »

Alguno a sacado ya como hacerlos en movimiento?  :P yo sigo en ello pero no se mueve...

Es crear varios frames, como un gif con un circulo, cuadrado, lo que sea (hacerlo aleatorio) que tape parte del captcha y despues unirlos con el script que menciona dark_sargon, el problema que tenia es que no me guarda la imagen creada en el archivo tmp(es el mismo script que aconseja dark_sargon), haber si alguien me ayuda asi seguimos con esto  ;).
En línea


GITHUB: github.com/empirefx
EFEX


Desconectado Desconectado

Mensajes: 327


"Dinero Facil"


Ver Perfil WWW
Re: captchas
« Respuesta #10 en: 3 Febrero 2012, 12:07 »

Version de GIFEncoder que utilizé PHPclasses / Pastie Bin.
Código
<?php
/*
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
:: GIFEncoder Version 2.0 by László Zsidi, http://gifs.hu
::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*/

include "GIFEncoder.class.php";
 
class Captcha
{
protected $captcha;
protected $clave;
 
function __construct()
{
$rnd = rand(0, 1000000);
$key = strtoupper(substr(md5( microtime() * $rnd),1,5));
$this->clave = $key;
$this->captcha = imagecreatefromgif('bg.gif');
$posicion_x=15;
for($i = 0;$i<strlen($key);$i++){
$r=rand(0,255);
$g=rand(0,255);
$b=rand(0,255);
$posicion_y=rand(20,40);
$colorText = imagecolorallocate($this->captcha, $r, $g, $b);
imagestring($this->captcha, 30, $posicion_x, $posicion_y, $key[$i], $colorText);
$posicion_x+=25;
}
//Fix con el color de la segunda letra
$white = ImageColorAllocate($this->captcha,0,0,0);
ImageColorTransparent($this->captcha,$white);
}
 
public function imprimir()
{
if (!empty($this->frames) AND !empty($this->framed))
{
$gif = new GIFEncoder($this->frames, $this->framed, 0, 2, 0, 0, 0, 'url');
Header ('Content-type:image/gif');
echo $gif->GetAnimation();
imagedestroy($this->captcha);
}else{
Header('Content-type:image/gif');
imagegif($this->captcha);
}
 
}
 
public function guardar()
{
$_SESSION['CAPTCHA_TEXT'] = $this->clave;
return $this->clave;
}
}
 
class Animacion extends Captcha
{
public $frames;
public $framed;
 
function __construct($aleatorio = 1)
{
parent::__construct();
if ($aleatorio == 1) {
$n = rand(1,3);
$n == 1 ? $this->circulo() : 'no' ;
$n == 2 ? $this->bum() : 'no' ;
$n == 3 ? $this->desliz() : 'no' ;
}
}
 
public function circulo()
{
$circulo_x = 40;
$circulo_y = 0;
$frames_x = 20;
for($b=0;$b<$frames_x;$b++){
$im = imagecreatetruecolor(150, 80);
imagecopy($im, $this->captcha, 0, 0, 0, 0, imagesx($this->captcha), imagesy($this->captcha));
//fix
$white = ImageColorAllocate($im,255,255,255);
ImageFill($im,0,0,$white);
$circulo = imagecolorallocate($im, 0, 0, 0);
imagefilledellipse( $im, $circulo_y, $circulo_x, 30, 30, $circulo );
$fname = 'tmp/'.$b.'.gif';
imagegif($im, $fname);
$this->frames[] = $fname;
$this->framed[] = 1;
$circulo_y+=10;
imagedestroy($im);
}
$this->imprimir();
}
 
public function bum()
{
$frames_x = 30;
for($b=0;$b<$frames_x;$b++){
$im = imagecreatetruecolor(150, 80);
imagecopy($im, $this->captcha, 0, 0, 0, 0, imagesx($this->captcha), imagesy($this->captcha));
//fix
$white = ImageColorAllocate($im,255,255,255);
ImageFill($im,0,0,$white);
imagefilledrectangle($im,($b*5),($b*5),10+($b*5),10+($b*5),0);
imagefilledrectangle($im,($b*1),($b*5),10+($b*1),10+($b*5),0);
imagefilledrectangle($im,($b*3)*2,($b*1)+$b,10+($b*3)*2,10+($b*1)+$b,0);
imagefilledrectangle($im,($b*4)*2,($b*2)+$b,10+($b*4)*2,10+($b*2)+$b,0);
$fname = 'tmp/'.$b.'.gif';
imagegif($im, $fname);
$this->frames[] = $fname;
$this->framed[] = 1;
imagedestroy($im);
}
$this->imprimir();
}
 
public function desliz()
{
$imgwidth = imagesx($this->captcha);
$imgheight = imagesy($this->captcha);
$frames_x = 30;
for($b=0;$b<$frames_x;$b++){
$im = imagecreatetruecolor(150, 80);
imagecopy($im, $this->captcha, 0, 0, 0, 0, imagesx($this->captcha), imagesy($this->captcha));
//fix
$white = ImageColorAllocate($im,255,255,255);
ImageFill($im,0,0,$white);
imagefilledrectangle($im,($b - 1) * 8 + 8,1,$imgwidth,$imgheight, 0);
$fname = 'tmp/'.$b.'.gif';
imagegif($im, $fname);
$this->frames[] = $fname;
$this->framed[] = 1;
imagedestroy($im);
}
$this->imprimir();
}
}
 
// Animacion aleatoria
$showtime = new Animacion();
//$showtime->guardar();
 
// Seleccionar animacion
//$showtime = new Animacion(0);
//$showtime->bum();
 
// Sin animacion
//$showtime = new Captcha();
//$showtime->imprimir();
 
?>
 
En línea


GITHUB: github.com/empirefx
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Los captchas de audio ya no son un obstáculo
Noticias
wolfbcn 1 302 Último mensaje 6 Mayo 2008, 18:22
por ohk
Captchas en 3D, una realidad
Noticias
Novlucker 9 1,031 Último mensaje 28 Marzo 2009, 17:13
por Novlucker
Captchas: ¿Eres humano?
Noticias
wolfbcn 5 2,221 Último mensaje 12 Marzo 2011, 19:48
por dantemc
Consiguen romper CAPTCHAS de audio con un 89% de tasa de acierto
Noticias
wolfbcn 2 1,233 Último mensaje 30 Mayo 2011, 02:36
por vertexSymphony
Ponen en duda la efectividad de los `captchas´
Noticias
wolfbcn 0 239 Último mensaje 4 Noviembre 2011, 22:00
por wolfbcn
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines