Captcha animado em português para o seu siteFree

Captcha Animado é uma forma mais segura de se distinguir robôs spamers de humanos. É um componente de alta tecnologia, de fácil leitura por humanos mas muito difícil de serem lidos por robôs.

Por isso desenvolvemos o nosso Captcha Animado em Português. E agora o estamos disponibilizando para que outros sites da web possam incorporar esta tecnologia sem nenhum custo para a versão básica.

O Captcha Animado em português da Lopes & Souto em sua versão básica é gratuito e totalmente funcional. Pode ser incorporado em seu: site, portal, ou sistema. Basta se cadastrar e baixar o código de incorporação.

Soluções personalizadas podem ser desenvolvidas. Para maiores informações, entre em contato conosco (ver parte inferior desta página).

Código de incorporação

Estes são exemplos de como incorporar o captcha animado em sua página. Antes de iniciar cadastre-se para obetr as chaves para o seu domíno. Para cada domínio uma chave publica e uma chave privada devem ser cadastradas.

Para maiores informações sobre as configurações disponíveis visite a página de exemplos de configuração. Lá estarão disponíveis todas as opções de skins, desafios e texto, assim como a geração automática do código de incorporação.

											
<%
'	Titulo:	Intergação do Captcha Animado em Português
'	Autor: 	Dante Souto
'	email: 	dante@lopessouto.com.br
'	data: 	03/10/2014
%>
<html>
<head>
    <title>Captcha Animado em Português</title>
    <link rel="stylesheet" type="text/css" href="https://www.lopessouto.com.br/captcha/captcha.css" />
</head>
<body>
<%
Dim strPublicKey
Dim strPrivateKey

' chave publica e privada recebida no momento de cadastro
strPublicKey = "2154"
strPrivateKey = "4512"	' ATENÇÃO: não divulgue esta chave

If Request("envia") <> "" Then
	
	If CheckCaptcha() Then
		Response.Write "<span style='color:#00FF00;'>"
		Response.Write "validado com sucesso o captcha digitado"
		Response.Write "</span><br>"
	Else
		Response.Write "<span style='color:#FF0000;'>"
		Response.Write "O captcha digitado n&atilde;o foi validado"
		Response.Write "</span><br>"
	End If
	
End If

Function CheckCaptcha()
	
	Dim strKey
	Dim strWord
	Dim strIP
	Dim objDoc
	Dim strDoc
	Dim bRet
	
	Randomize()
	
	strKey = Request("__chave_desafio_ls")
	strWord = Request("__desafio_ls")
	bRet = False 
	
	' Usa Microsoft.XMLDOM para ler o xml enviado pelo servidor
	Set objDoc = Server.CreateObject("Microsoft.XMLDOM")		
	objDoc.setProperty "ServerHTTPRequest", True
	objDoc.async = False
	
	' usando numeros randomicos para prevenir cache em proxy's
	strDoc = "https://www.lopessouto.com.br/captcha/valida_captcha.aspx"
	strDoc = strDoc & "?word=" & strWord
	strDoc = strDoc & "&key=" & strKey
	strDoc = strDoc & "&sitekey=" & strPrivateKey 
	strDoc = strDoc & "&r=" & Rnd()
	
	If objDoc.Load(strDoc) Then
		
		' retorna OK se a chave privada deste site for autenticada
		If objDoc.selectNodes("/LopesSoutoCaptcha/sitekey").Item(0).Text = "OK" Then
			' site validado
			If objDoc.selectNodes("/LopesSoutoCaptcha/result/auth").Item(0).Text = "TRUE" Then
				' a palavra digitada pelo cliente confere
				' ip registrado pelo serviço
				strIP = objDoc.selectNodes("/LopesSoutoCaptcha/result/ip").Item(0).Text
				bRet = True
			Else
				bRet = False
			End If
		Else
			Response.Write "<span style='color:#FF0000;'>"
			Response.Write "CheckCaptcha: A sua chave privada não é válida!"
			Response.Write "</span><br>"
		End If
		
	Else
		
		Response.Write "<span style='color:#FF0000;'>"
		Response.Write "CheckCaptcha: Erro ao conectar o seridor!"
		Response.Write "</span><br>"
		
	End If
	
	CheckCaptcha = bRet
	
End Function
%>
<br>
<form name="valida" method="post">
<script type="text/javascript" src="https://www.lopessouto.com.br/captcha/captcha_loader.aspx?k=<%=strPublicKey%>"></script>
<div id="__captcha_ls" disabled="false"></div>
<img src="https://www.lopessouto.com.br/captcha/reload.jpg" name="__recarga_ls" id="__recarga_ls" onclick="load_Captcha_LS();" />
<input type="hidden" name="__chave_desafio_ls" id="__chave_desafio_ls" value="" />
<input type="text" name="__desafio_ls" id="__desafio_ls" placeholder="digite o texto" />
<input name="envia" id="envia" type="submit" value="Enviar">
</form>
</body>
</html>
										
EXECUTE O EXEMPLO CLICANDO AQUI
											
<?php
//	Titulo:	Intergação do Captcha Animado em Português
//	Autor: 	Dante Souto
//	email: 	dante@lopessouto.com.br
//	data: 	03/10/2014
?>
<html>
<head>
<title>Captcha Animado em Português</title>
<link rel="stylesheet" type="text/css" href="http://www.lopessouto.com.br/captcha/captcha.css" />
</head>
<body>
<?php

// chave publica e privada recebida no momento de cadastro
$strPublicKey = "2154";
$strPrivateKey = "4512";	// não divulgue esta chave

if (isset($_POST["envia"])) {
	
	if(CheckCaptcha()) {
		echo("<span style='color:#00FF00;'>validado com sucesso o captcha digitado</span><br>");
	} else {
		echo("<span style='color:#FF0000;'>O captcha digitado não foi validado</span><br>");
	}
	
}

function CheckCaptcha() {
	
	$strKey = $_POST["__chave_desafio_ls"];
	$strWord = $_POST["__desafio_ls"];
	$strIP = "";
	
	$bRet = false;
	
	// usa DOMDocument para ler o xml enviado pelo servidor
	// no php.ini a constante "allow_url_fopen" deve estar setada como "On"
	$objDoc = new DOMDocument();
	
	// usando numeros randomicos para prevenir cache em proxy's
	$strDoc = "http://www.lopessouto.com.br/captcha/valida_captcha.aspx";
	$strDoc = $strDoc . "?word=" . $strWord;
	$strDoc = $strDoc . "&key=" . $strKey;
	$strDoc = $strDoc . "&sitekey=" . $GLOBALS["strPrivateKey"];
	$strDoc = $strDoc . "&r=" . mt_rand();
	
	if ($objDoc->load($strDoc)) {
		
		// para ver o XML carregado:
		//print $objDoc->saveXML();
		
		$sdoc = simplexml_import_dom($objDoc);
		
		// retorna OK se a chave privada deste site for autenticada
		if ($sdoc->sitekey=="OK") {
			// site validado
			if ($sdoc->result[0]->auth=="TRUE") {
				// a palavra digitada pelo cliente confere
				// ip registrado pelo serviço
				$strIP = $sdoc->result[0]->ip;
				$bRet = true;
			} else {
				$bRet = false;
			}
		} else {
			echo("<span style='color:#FF0000;'>CheckCaptcha: A sua chave privada não é válida!</span><br>");
		}
		
	} else {
		echo("<span style='color:#FF0000;'>CheckCaptcha: Erro ao conectar o seridor</span><br>");
	}
	
	return $bRet;
	
}

?>
<br />
<form name="valida" method="post">
<script type="text/javascript" src="http://www.lopessouto.com.br/captcha/captcha_loader.aspx?k=<?=$strPublicKey?>"></script>
<div id="__captcha_ls"></div>
<img src="http://www.lopessouto.com.br/captcha/reload.jpg" name="__recarga_ls" id="__recarga_ls" onclick="load_Captcha_LS();" />
<input type="hidden" name="__chave_desafio_ls" id="__chave_desafio_ls" value="" />
<input type="text" name="__desafio_ls" id="__desafio_ls" placeholder="digite o texto" />
<input name="envia" id="envia" type="submit" value="Enviar">
</form>
</body>
</html>
										
EXECUTE O EXEMPLO CLICANDO AQUI
											
<%@ Page Language="vb"%>
<%@ Import namespace="System.Xml" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<%
'	Titulo:	Intergação do Captcha Animado em Português
'	Autor: 	Dante Souto
'	email: 	dante@lopessouto.com.br
'	data: 	03/10/2014
%>
<head runat="server">
    <title>Captcha Animado em Português</title>
    <link rel="stylesheet" type="text/css" href="https://www.lopessouto.com.br/captcha/captcha.css" />
</head>
<body>
<script runat="server">
    
    Public strPublicKey As String = "2154"
    Private strPrivateKey As String = "4512"
    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        
        If Request("envia") <> "" Then
            If CheckCaptcha() Then
                Response.Write("<span style='color:#00FF00;'>validado com sucesso o captcha digitado</span><br>")
            Else
                Response.Write("<span style='color:#FF0000;'>O captcha digitado n&atilde;o foi validado</span><br>")
            End If
        End If
        
    End Sub

    Private Function CheckCaptcha() As Boolean
        
        Dim strKey As String
        Dim strWord As String
        Dim strIP As String = ""
        Dim objDoc As New XmlDocument
        Dim strDoc As String
        Dim bRet As Boolean = False

        Randomize()

        strKey = Request("__chave_desafio_ls")
        strWord = Request("__desafio_ls")
        bRet = False

        ' usando numeros randomicos para prevenir cache em proxy's
        strDoc = "https://www.lopessouto.com.br/captcha/valida_captcha.aspx"
		strDoc = strDoc & "?word=" & strWord
		strDoc = strDoc & "&key=" & strKey 
		strDoc = strDoc & "&sitekey=" & strPrivateKey 
		strDoc = strDoc & "&r=" & Rnd()

        Try

            objDoc.Load(strDoc)

            Try

                If objDoc.GetElementsByTagName("sitekey").Item(0).InnerText = "OK" Then
                    If objDoc.GetElementsByTagName("auth").Item(0).InnerText = "TRUE" Then
						strIP = objDoc.GetElementsByTagName("ip").Item(0).InnerText
                        bRet = True
                    Else
                        bRet = False
                    End If
                Else
                    Response.Write("<span style='color:#FF0000;'>CheckCaptcha: A sua chave privada n&atilde;o é válida!</span><br>")
                End If

            Catch ex As Exception

                Response.Write("Ocorreu um erro: " & ex.Message & " " & ex.StackTrace)

            End Try


        Catch ex As Exception
            Response.Write("<span style='color:#FF0000;'>CheckCaptcha: Erro ao conectar o seridor</span><br>")
        End Try

        CheckCaptcha = bRet

    End Function

</script>
<br>
<form name="valida" method="post">
<script type="text/javascript" src="https://www.lopessouto.com.br/captcha/captcha_loader.aspx?k=<%=strPublicKey%>"></script>
<div id="__captcha_ls"></div>
<img src="https://www.lopessouto.com.br/captcha/reload.jpg" name="__recarga_ls" id="__recarga_ls" onclick="load_Captcha_LS();" />
<input type="hidden" name="__chave_desafio_ls" id="__chave_desafio_ls" value="" />
<input type="text" name="__desafio_ls" id="__desafio_ls" placeholder="digite o texto" />
<input name="envia" id="envia" type="submit" value="Enviar" />
</form>
</body>
</html>

										
EXECUTE O EXEMPLO CLICANDO AQUI
											
<%@ Page Language="C#"%>
<%@ Import namespace="System.Xml" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<%
//	Titulo:	Intergação do Captcha Animado em Português
//	Autor: 	Dante Souto
//	email: 	dante@lopessouto.com.br
//	data: 	03/10/2014
%>
<head runat="server">
    <title>Captcha Animado em Português</title>
    <link rel="stylesheet" type="text/css" href="https://www.lopessouto.com.br/captcha/captcha.css" />
</head>
<body>
<script language="c#" runat="server">

public string strPublicKey = "2154";
private string strPrivateKey = "4512";
public string strScrSource;

public void Page_Load(object sender, EventArgs e)
{

	if (Request["envia"] != null) {
		if (CheckCaptcha()) {
			Response.Write("<span style='color:#00FF00;'>validado com sucesso o captcha digitado</span><br>");
		} else {
			Response.Write("<span style='color:#FF0000;'>O captcha digitado n&atilde;o foi validado</span><br>");
		}
	}

}

private bool CheckCaptcha()
{

	string strKey = null;
	string strWord = null;
	string strIP = null;
	XmlDocument objDoc = new XmlDocument();
	string strDoc = null;
	bool bRet = false;

	Random rnd = new Random();

	strKey = Request["__chave_desafio_ls"];
	strWord = Request["__desafio_ls"];
	bRet = false;

	// usando numeros randomicos para prevenir cache em proxy's
	strDoc = "https://www.lopessouto.com.br/captcha/valida_captcha.aspx";
	strDoc = strDoc + "?word=" + strWord;
	strDoc = strDoc + "&key=" + strKey;
	strDoc = strDoc + "&sitekey=" + strPrivateKey;
	strDoc = strDoc + "&r=" + rnd.Next();

	try {
		
		objDoc.Load(strDoc);
		
		try {
			
			if (objDoc.GetElementsByTagName("sitekey").Item(0).InnerText == "OK") {
				
				if (objDoc.GetElementsByTagName("auth").Item(0).InnerText == "TRUE") {
					bRet = true;
				} else {
					bRet = false;
				}
				
				strIP = objDoc.GetElementsByTagName("ip").Item(0).InnerText;
			
			} else {
				
				Response.Write("<span style='color:#FF0000;'>CheckCaptcha: A sua chave privada n&atilde;o é válida!</span><br>");
			}
			
		} catch (Exception ex) {
			
			Response.Write("Ocorreu um erro: " + ex.Message + " " + ex.StackTrace);
			
		}
		
	} catch (Exception ex) {
		
		Response.Write("<span style='color:#FF0000;'>CheckCaptcha: Erro ao conectar o seridor</span><br>");
		
	}

	return bRet;

}
</script>
<br>
<form name="valida" method="post">
<script type="text/javascript" src="https://www.lopessouto.com.br/captcha/captcha_loader.aspx?k=<%=strPublicKey%>"></script>
<div id="__captcha_ls"></div>
<img src="https://www.lopessouto.com.br/captcha/reload.jpg" name="__recarga_ls" id="__recarga_ls" onclick="load_Captcha_LS();" />
<input type="hidden" name="__chave_desafio_ls" id="__chave_desafio_ls" value="" />
<input type="text" name="__desafio_ls" id="__desafio_ls" placeholder="digite o texto" />
<input name="envia" id="envia" type="submit" value="Enviar" />
</form>
</body>
</html>

										
EXECUTE O EXEMPLO CLICANDO AQUI
											
<!--CAPTCHA AUTENTICADO-->
<LopesSoutoCaptcha>
  <date>7/10/2014 16:49:04</date>
  <sitekey>OK</sitekey>
  <result>
    <auth>TRUE</auth>
    <ip>152.249.78.239</ip>
    <limite>99995</limite>
  </result>
</LopesSoutoCaptcha>

<!--CAPTCHA NÃO AUTENTICADO-->
<LopesSoutoCaptcha>
  <date>7/10/2014 16:50:09</date>
  <sitekey>OK</sitekey>
  <result>
    <auth>FALSE</auth>
  </result>
</LopesSoutoCaptcha>

<!--SITE NÃO AUTENTICADO-->
<LopesSoutoCaptcha>
  <date>7/10/2014 16:50:09</date>
  <sitekey>NOK</sitekey>
</LopesSoutoCaptcha>