Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

interlokk

Código de autenticação por imagem

Recommended Posts

é o seguinte senti falta aqui no fórum de um sistema que autetique cadastros por imagens e evite que o código seja lido por robôs...Vejo muito isso em aspx mas quase nenhum em ASp. Assim dei uma olhada na net e implementei este código todo em ASP que gera esta função. Vai aê o código para os interessados. Abraços.

 

para começar crie uma página chamada autentica.asp e insira o seguinte código nela:

 

 

'vamos setar as variaveis do códigostrRCCode = Request.QueryString("rc")strRC = Request.QueryString("code")strRCP = Request.QueryString("p")if strRC = "image" then	NullStop = False	RandCode = (strRCCode + 17456) / 50000	lenCode = Len(RandCode)	If LenCode < 6 and Nullstop = False then	For J = 1 to (6 - LenCode)  NullRC = NullRC & "0"	Next	NullStop = True	End If	RandCode = NullRC & RandCode	ImageP = Mid(RandCode, strRCP,1)	Response.Redirect "imagens/" & ImageP & ".gif"Else'agora verificamos se a página que chama o form é estaif Right(Request.Servervariables("SCRIPT_NAME"),12) = "autentica.asp" then  'definido um número randômico  'isto define a quantidade de imagens que irão aparecer  HowManyNbr = 6  'dê um loop no número gerado  NumbersToShow = ""  Randomize  For I = 1 to HowManyNbr  	NumbersToShow = NumbersToShow & Fix(9*Rnd)  Next  'agora decodificamos os números gerados  RandomizedCode = NumbersToShow * 50000 - 17456'agora geramos o conteudo HTML%>  <html>  <body><form action="resultado.asp" method="post">  <table> <tr>    <td valign="top" align="center" colspan="2" bgcolor="#EFEFEF"><b>Autenticação</b></td>    </tr>    <tr>    <td bgColor="#efefef" colspan="2">    <b>Código de cadastro único</b><br>Caso não estiver vendo nenhum número ou vendo imagens indefinidas, entre em contato com o <a href="mailto:seu@email.psc.br">administrador</a> do fórum.</td>  </tr>    <tr>    <td align="center" bgColor="#efefef" colspan="2"><input type='hidden' name='regid' value='<%=RandomizedCode%>'>    <% 'definindo as imagens  'loop nas imagens  NullStop = False %>  </tr>    <tr>    <td colspan="2" align="right" valign="middle" nowrap bgColor="#E6E6E6"><div align="center"><b><font face="arial" size="2"><font color="#ffffff"></font> </font></b><font face="arial" size="2">               <%  For I = 1 to HowManyNbr  	Response.write "<img src='autentica.asp?code=image&rc=" & RandomizedCode &"&p="& I &"' border='0' alt='Código'>"  Next%>                 </div></td>    </tr>    <tr>    <td bgColor="#efefef" colspan="2"><font face="arial" size="2">    <b>Código de confirmação de cadastro.</b><br>    Para evitar o uso de programas de registro em massa no cadastro de  usuários, digite no campo abaixo os 6 (seis) dígitos mostrados na imagem acima.<br><b>Atenção:</b> Somente números são permitidos.</td>  </tr>    <tr>    <td bgColor="#efefef" align="right" valign="middle" nowrap width="10%"><b><font face="arial" size="2"><STRONG>Insira o código aqui >><STRONG> *</font> </b></td>    <td bgColor="#efefef"><font face="arial" size="2">    <input type='text' size='7' maxlength='6' name='reg_code'>                <input type="submit" name="Submit" value="Verificar"></font></td>    </tr></table></form></body></html><%end ifend ifend if

Agora crie uma página de resutado (resultado.asp):

 

RandCode = Request.Form("reg_code")  strRCCode = Request.Form("regid")  RandCode2 = (strRCCode + 17456) / 50000  lenCode = Len(RandCode2)  NullStop = False  If LenCode < 6 and Nullstop = False then  	For J = 1 to (6 - LenCode)    NullRC = NullRC & "0"  	Next  	NullStop = True  End If  RandCode2 = NullRC & RandCode2  If RandCode <> RandCode2 then  	response.write("A autenticação está incorreta!")  	else  	response.write("Ok")  End If

Pronto...ah, num esquece de criar imagens com os número de 0 a 9 desenhados e de coloca-las na pasta definida em

Response.Redirect "imagens/" & ImageP & ".gif"

Espero que ajude. []'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, a versão que eu postei rodava legal aqui...mas a sua versão não mostrou nada aqui...então reformulei a primeira página:

 

<%'vamos setar as variaveis do códigostrRCCode = Request.QueryString("rc")strRC = Request.QueryString("code")strRCP = Request.QueryString("p")if strRC = "image" then	NullStop = False	RandCode = (strRCCode + 17456) / 50000	lenCode = Len(RandCode)	If LenCode < 6 and Nullstop = False then	For J = 1 to (6 - LenCode)  NullRC = NullRC & "0"	Next	NullStop = True	End If	RandCode = NullRC & RandCode	ImageP = Mid(RandCode, strRCP,1)	Response.Redirect "imagens/" & ImageP & ".gif"Else'agora verificamos se a página que chama o form é estaif Right(Request.Servervariables("SCRIPT_NAME"),12) = "autentica.asp" then  'definido um número randômico  'isto define a quantidade de imagens que irão aparecer  HowManyNbr = 6  'dê um loop no número gerado  NumbersToShow = ""  Randomize  For I = 1 to HowManyNbr 	 NumbersToShow = NumbersToShow & Fix(9*Rnd)  Next  'agora decodificamos os números gerados  RandomizedCode = NumbersToShow * 50000 - 17456'agora geramos o conteudo HTML%>  <html>  <body><form action="asresult.asp" method="post">  <table> <tr>    <td valign="top" align="center" colspan="2" bgcolor="#EFEFEF"><b>Autenticação</b></td>    </tr>    <tr>    <td bgColor="#efefef" colspan="2">    <b>Código de cadastro único</b><br>Caso não estiver vendo nenhum número ou vendo imagens indefinidas, entre em contato com o <a href="mailto:seu@email.psc.br">administrador</a> do fórum.</td>  </tr>    <tr>    <td align="center" bgColor="#efefef" colspan="2"><input type='hidden' name='regid' value='<%=RandomizedCode%>'>    <% 'definindo as imagens  'loop nas imagens  NullStop = False %>  </tr>    <tr>    <td colspan="2" align="right" valign="middle" nowrap bgColor="#E6E6E6"><div align="center"><b><font face="arial" size="2"><font color="#ffffff"></font> </font></b><font face="arial" size="2">               <%  For I = 1 to HowManyNbr 	 Response.write "<img src='autentica.asp?code=image&rc=" & RandomizedCode &"&p="& I &"' border='0' alt='Código'>"  Next%>                 </div></td>    </tr>    <tr>    <td bgColor="#efefef" colspan="2"><font face="arial" size="2">    <b>Código de confirmação de cadastro.</b><br>    Para evitar o uso de programas de registro em massa no cadastro de  usuários, digite no campo abaixo os 6 (seis) dígitos mostrados na imagem acima.<br><b>Atenção:</b> Somente números são permitidos.</td>  </tr>    <tr>    <td bgColor="#efefef" align="right" valign="middle" nowrap width="10%"><b><font face="arial" size="2"><STRONG>Insira o código aqui >><STRONG> *</font> </b></td>    <td bgColor="#efefef"><font face="arial" size="2">    <input type='text' size='7' maxlength='6' name='reg_code'>                <input type="submit" name="Submit" value="Verificar"></font></td>    </tr></table></form></body></html><%end ifend if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.