Ir para conteúdo

POWERED BY:

Arquivado

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

Juliano Gomes

criptografia

Recommended Posts

caros colegas, tenho duas duvidas em relação ao assunto:

 

1. como é feita a criptografia da url tipo essa abaixo???

 

http://site.com.br/pagina.asp?fti=yes&...%2d0000%2d0000%

 

 

2. ja tentei alguma maneiras de criptografar uma string e enviar para o campo senha do meu banco mysql, em quase todas, que alias achei em varios forums obtive o mesmo problema: o mysql nao aceita alguns caracteres tendo como resultado final um erro asp quando tentado inserir a string criptografada no banco, não gostaria de utilizar componentes e nem programas pra fazer isso, gostaria de fazer na mao mesmo, se alguem puder me indicar algum algorítmo ou mesmo me ajudar a reverter o processo de encriptação desse código que criei via replace abaixo ficaria muito grato:

 

<%function encripta(str)	encripta = replace(str,"a","py2")	encripta = replace(encripta,"A","py1")	encripta = replace(encripta,"b","4mx")	encripta = replace(encripta,"B","4m1")	encripta = replace(encripta,"c","d3o")	encripta = replace(encripta,"C","d3a")	encripta = replace(encripta,"d","9sl")	encripta = replace(encripta,"D","9sc")	encripta = replace(encripta,"e","5sg")	encripta = replace(encripta,"E","5sf")	encripta = replace(encripta,"f","6wh")	encripta = replace(encripta,"F","6w0")	encripta = replace(encripta,"g","5dh")	encripta = replace(encripta,"G","5dy")	encripta = replace(encripta,"h","5xh")	encripta = replace(encripta,"H","5xj")	encripta = replace(encripta,"i","7dl")	encripta = replace(encripta,"I","7d6")	encripta = replace(encripta,"j","8ef")	encripta = replace(encripta,"J","8ei")	encripta = replace(encripta,"k","2ap")	encripta = replace(encripta,"K","2a9")	encripta = replace(encripta,"l","sd9")	encripta = replace(encripta,"L","sdw")	encripta = replace(encripta,"m","p5w")	encripta = replace(encripta,"M","p5a")	encripta = replace(encripta,"n","m4s")	encripta = replace(encripta,"N","m4g")	encripta = replace(encripta,"o","7gi")	encripta = replace(encripta,"O","7gh")	encripta = replace(encripta,"p","p0j")	encripta = replace(encripta,"P","p0k")	encripta = replace(encripta,"q","4dx")	encripta = replace(encripta,"Q","4dl")	encripta = replace(encripta,"r","e6r")	encripta = replace(encripta,"R","e6b")	encripta = replace(encripta,"s","3up")	encripta = replace(encripta,"S","3un")	encripta = replace(encripta,"t","bso")	encripta = replace(encripta,"T","bs3")	encripta = replace(encripta,"u","yh5")	encripta = replace(encripta,"U","yh8")	encripta = replace(encripta,"v","rdf")	encripta = replace(encripta,"V","rdk")	encripta = replace(encripta,"x","uq8")	encripta = replace(encripta,"X","uqs")	encripta = replace(encripta,"z","rm3")	encripta = replace(encripta,"Z","rm7")	encripta = replace(encripta,"w","df1")	encripta = replace(encripta,"W","dfi")	encripta = replace(encripta,"y","tuf")	encripta = replace(encripta,"Y","tul")		encripta = replace(encripta,"0","lny")	encripta = replace(encripta,"1","7zh")	encripta = replace(encripta,"2","5ck")	encripta = replace(encripta,"3","dx7")	encripta = replace(encripta,"4","pif")	encripta = replace(encripta,"5","wfx")	encripta = replace(encripta,"6","9zk")	encripta = replace(encripta,"7","8lm")	encripta = replace(encripta,"8","quv")	encripta = replace(encripta,"9","pwd")			encripta = encriptaend function

Observações, ja tentei reverter o codigo pela forma lógica, ou seja:

 

function desencripta(str)	desencripta = replace(str,"py2","a")	desencripta = replace(desencripta,"py1","A")	desencripta = replace(desencripta,"4mx","b")	desencripta = replace(desencripta,"4m1","B")	desencripta = replace(desencripta,"d3o","c")	desencripta = replace(desencripta,"d3a","C")	desencripta = replace(desencripta,"9sl","d")	desencripta = replace(desencripta,"9sc","D")	desencripta = replace(desencripta,"5sg","e")	desencripta = replace(desencripta,"5sf","E")	desencripta = replace(desencripta,"6wh","f")	desencripta = replace(desencripta,"6w0","F")	desencripta = replace(desencripta,"5dh","g")	desencripta = replace(desencripta,"5dy","G")	desencripta = replace(desencripta,"5xh","h")	desencripta = replace(desencripta,"5xj","H")	desencripta = replace(desencripta,"7dl","i")	desencripta = replace(desencripta,"7d6","I")	desencripta = replace(desencripta,"8ef","j")	desencripta = replace(desencripta,"8ei","J")	desencripta = replace(desencripta,"2ap","k")	desencripta = replace(desencripta,"2a9","K")	desencripta = replace(desencripta,"sd9","l")	desencripta = replace(desencripta,"sdw","L")	desencripta = replace(desencripta,"p5w","m")	desencripta = replace(desencripta,"p5a","M")	desencripta = replace(desencripta,"m4s","n")	desencripta = replace(desencripta,"m4g","N")	desencripta = replace(desencripta,"7gi","o")	desencripta = replace(desencripta,"7gh","O")	desencripta = replace(desencripta,"p0j","p")	desencripta = replace(desencripta,"p0k","P")	desencripta = replace(desencripta,"4dx","q")	desencripta = replace(desencripta,"4dl","Q")	desencripta = replace(desencripta,"e6r","r")	desencripta = replace(desencripta,"e6b","R")	desencripta = replace(desencripta,"3up","s")	desencripta = replace(desencripta,"3un","S")	desencripta = replace(desencripta,"bso","t")	desencripta = replace(desencripta,"bs3","T")	desencripta = replace(desencripta,"yh5","u")	desencripta = replace(desencripta,"yh8","U")	desencripta = replace(desencripta,"rdf","v")	desencripta = replace(desencripta,"rdk","V")	desencripta = replace(desencripta,"uq8","x")	desencripta = replace(desencripta,"uqs","X")	desencripta = replace(desencripta,"rm3","z")	desencripta = replace(desencripta,"rm7","Z")	desencripta = replace(desencripta,"df1","w")	desencripta = replace(desencripta,"dfi","W")	desencripta = replace(desencripta,"tuf","y")	desencripta = replace(desencripta,"tul","Y")		desencripta = replace(desencripta,"lny","0")	desencripta = replace(desencripta,"7zh","1")	desencripta = replace(desencripta,"5ck","2")	desencripta = replace(desencripta,"dx7","3")	desencripta = replace(desencripta,"pif","4")	desencripta = replace(desencripta,"wfx","5")	desencripta = replace(desencripta,"9zk","6")	desencripta = replace(desencripta,"8lm","7")	desencripta = replace(desencripta,"quv","8")	desencripta = replace(desencripta,"pwd","9")			desencripta = desencriptaend function

nao da certo...

quem puder me ajudar

 

pra testar essa bagaça basta dar um response.write(encripta("palavradesejada"));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai você tem o seguinte problema.Você deu replace no "A" com py1, oque aconteceria? Ao chegar no "p", ele faria o replace normal do "p", ou seja, o seu "p" do "A" criptografado, viraria "p0j".Bom, na empresa, fizemos a criptografia, usando dados em hexadecimal. Para meu site, fiz ele em octal.Da uma olhada, uma dessas maneiras deve funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eh cara, provavelmente nao funciona devido ao que o cara falou aihdeve tah juntando letras parecidas e tah sumindovocê tem q fazer de uma forma q qdo criptografado não possa misturar na hora de descriptografarpor exemploA = FFB = FGC = GFD = GGa string BCD ficariaFGGFGGnao sei ao certo como o ASP faz o Replace, mas creio q ele vai "lendo" da "esquerda pra direita"e num replacevocê teriaFDBG ; completamente diferente de BCDsacou ?? nao pode escolher umas paradas aleatórias e substituirse você quiser fazer no braço crie um algoritmoe aih, como fica pra voltar agora ??? mas tem q ser algo lógiconunca fiz um codigo assim, mas to pensando em vários agoraexemplos:- RotN --> usam mto no orkut.... seria o alfabeto "deslocado".... um Rot5 seria um alfabeto deslocado 5 posições pra frente... por exemplo....o A, seria na verdade o E..... o E o I e por aih vai... bem facinho de fazer....- Números primos.... esse eh legal e eh dificil ter fórmula.... você poderia agrupar cada caracter em 3 números, onde seriam sempre primos.... veja bem, AGRUPAR... e porque??? pra poder ter um algortimo pra descodificar.... usaria akelas funções... tipo - pegue os 3 primeiros numeros - descriptografe - pegue os 3 seguintes - descriptografee por aih vai- Fórmula.... você pode desenvolver uma fórmula q devolva um número pra cada letra...... mas acho importante tentar fazer um agrupamento.... tipo, se você tiver 1 e 53 vai ficar dificil de trocar...... intao faria 01 e 53enfim cara, as maneiras são MUITAS !!!!! heheheo RotN eh o mais bobinho e simples de fazer, mas eh tb mais facil de descobrir !!! heheheenfim, boa sorte ae !!!!![]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Juliano Gomes, seu problema foi um desafio pra mim e confesso que fiquei 3 horas na frente do pc tentando solucioná-lo. Bem, com o código a seguir você poderá criptografar qualquer palavra que possua números ou letras.Usando uma combinação de: Replace, Mid, Len, e ciclos For...Next consegui desenvolver o seguinte código, já comentado:Código ASP (início):-------------------------------------------<%@ Language=VBScript %><% Option Explicit %><%'Variável que armazenará o valor Request de um form ou de uma URLDim encriptar'Vamos supor que o valor retornado foi minhasenhaencriptar = "minhasenha"'No lugar de "minhasenha" você poderia colocar:'Request.QueryString("senha"), para recuperar os valores de uma URL'Do tipo: www.meusite.asp?senha=minhasenhaResponse.write "O termo: " & encriptar & "<br>"Response.write "Possui: " & Len(encriptar) & " letras ou números no total.<br><br>"'Definindo as variáveis que serão usadas adianteDim iLoop, quebra, letra 'Criando um Loop For...Next. Durante cada Loop, uma letra da 'variável encriptar será extraída e criptografada For iLoop = 1 to Len(encriptar) step 1 'Extraindo uma determinada letra, de acordo com o valor que iLoop 'assume em um determinado momento do ciclo, e tamanho de string = 1, ou seja, uma só letra letra = Mid(encriptar, iLoop, 1) 'Utilizando a condição Select Case para avaliar cada letra 'e criptografar de acordo com códigos convencionados. Select Case letra Case "a" letra = "py2" Case "b" letra = "4mx" Case "c" letra = "d3o" Case "d" letra = "9s1" Case "e" letra = "5sg" Case "f" letra = "6wh" Case "g" letra = "5dh" Case "h" letra = "5xh" Case "i" letra = "7dl" End Select 'variável quebra = reunião das letras já criptografadas, quebra = Trim(quebra & letra) 'Next= faz o valor de iLoop aumentar de 1 unidade e volta ao 'início do ciclo Next Response.write "Foi transformada para: " & quebra%>---------------------------Código ASP (final)Bem, como você pôde perceber, não coloquei todas as opções em Case "", pois não é esse o objetivo (vou deixar esse pequeno trabalhinho por sua conta! hehe!).Me parece que no seu caso será fácil descriptografar, pois sua criptografia é uniforme, ou seja, cada letra se transforma em 3 letras. Se você ainda tiver dúvidas, posso tentar te ajudar na descriptografia... se alguém se dispor, estejam à vontade para utilizar o código!Dicas:1) Leve o código para um editor de ASP, assim fica mais fácil você separar o código dos comentários.2) Não envie a senha pelo Método GET, sempre pelo Método POST. Talvez seja por isso que você queria criptografar... é verdade?Bom pessoal, é isso... espero que tenham entendido e gostado...Criptografem suas páginas à vontade!!!Um abraço e boa sorte a todos!------------------------------ASP yes! PHP never!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Klonder, muito obrigado amigo pela contribuição, só estou tendo problemas na descriptografia, da uma olhada, com certeza voce saberá onde estou errando:

 

<%Function encripta(Str)'Definindo as variáveis que serão usadas adianteDim iLoop, quebra, letra	'Criando um Loop For...Next. Durante cada Loop, uma letra da	'variável encriptar será extraída e criptografada	For iLoop = 1 to Len(Str) step 1	'Extraindo uma determinada letra, de acordo com o valor que iLoop	'assume em um determinado momento do ciclo, e tamanho de string = 1, ou seja, uma só letra	letra = Mid(Str, iLoop, 1)	'Utilizando a condição Select Case para avaliar cada letra	'e criptografar de acordo com códigos convencionados.	Select Case letra	Case "a"	letra = "py2"	Case "b"	letra = "4mx"	Case "c"	letra = "d3o"	End Select	'variável quebra = reunião das letras já criptografadas,	quebra = Trim(letra)	Response.Write(quebra)	'Next= faz o valor de iLoop aumentar de 1 unidade e volta ao	'início do ciclo	NextEnd FunctionFunction desencripta(Str)'Definindo as variáveis que serão usadas adianteDim iLoop, quebra, letra	'Criando um Loop For...Next. Durante cada Loop, uma letra da	'variável encriptar será extraída e criptografada	For iLoop = 1 to Len(Str) step 1	'Extraindo uma determinada letra, de acordo com o valor que iLoop	'assume em um determinado momento do ciclo, e tamanho de string = 1, ou seja, uma só letra	letra = Mid(Str, iLoop, 1)	'Utilizando a condição Select Case para avaliar cada letra	'e criptografar de acordo com códigos convencionados.	Select Case letra	Case "py2"	letra = "a"	Case "4mx"	letra = "b"	Case "d3o"	letra = "c"	End Select	'variável quebra = reunião das letras já criptografadas,	quebra = Trim(letra)	Response.Write(quebra)	'Next= faz o valor de iLoop aumentar de 1 unidade e volta ao	'início do ciclo	NextEnd Function%><%Response.Write(encripta("abc"))%><br><%Response.Write(desencripta("py24mxd3o"))%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Juliano, o código para descriptografar está postado a seguir. Eu criptografei a palavra "facada", pois eu já havia definido os códigos no script (fiquei com preguiça de inserir o resto, hehe!). O dimarcinho deu uma idéia legal, porém ele não se atentou para o valor da variável iLoop, que deverá aumentar também, agora de 3 em 3.

 

Mais uma vez eu comentei todo o código. Tentei deixá-lo o mais genérico e explicado possível para a galera o adaptar como quiser... por isso não o coloquei como bloco de função...

 

Espero que gostem...

 

<%@ Language=VBScript %><% Option Explicit %><%'Variável que armazenará o valor Request de um form ou de uma URLDim descriptografar'Vamos supor que o valor retornado foi o seguinte (=facada, em criptografês!)descriptografar = "6whpy2d3opy29s1py2"'No lugar de "6whpy2d3opy29s1py2" você poderia colocar:'Request.QueryString("senha"), para recuperar os valores de uma URL'Do tipo: www.meusite.asp?senha=6whpy2d3opy29s1py2Response.write "O termo: " & descriptografar & "<br>"Response.write "Possui: " & Len(descriptografar) & " letras ou números no total.<br><br>"'Definindo as variáveis que serão usadas adianteDim iLoop, quebra, letra	'Configurando o valor do step para 3, pois devemos saltar a quantidade correta de letras.	'Agora, o valor de iLoop irá saltar de 3 em 3, pois esse é o tamanho do código criptografado para cada letra	'Os valores de iLoop serão: 1, 4, 7, 10, 13, etc...	For iLoop = 1 to Len(descriptografar) step 3	'Extraindo 3 letras de cada vez, de acordo com o valor que iLoop for assumindo	'Note que o tamanho da string a ser comparada deverá, agora, possuir 3 letras.	letra = Mid(descriptografar, iLoop, 3)		  'Utilizando a condição Select Case para avaliar um grupo de 3 letras		  'e descriptografar de acordo com códigos convencionados.		  Select Case letra		  Case "py2"		  letra = "a"		  Case "4mx"		  letra = "b"		  Case "d3o"		  letra = "c"		  Case "9s1"		  letra = "d"		  Case "5sg"		  letra = "e"		  Case "6wh"		  letra = "f"		  Case "5dh"		  letra = "g"		  Case "5xh"		  letra = "h"		  Case "7dl"		  letra = "i"		  End Select	'variável quebra = reunião das letras já descriptografadas,	quebra = Trim(quebra & letra)	'Next= faz o valor de iLoop aumentar de 3 unidades, conforme está definido	'em step, e depois volta ao início do ciclo	Next	Response.write "Foi descriptografada para: " & quebra%>

Qualquer dúvida estamos aí! Gostei muito da sua dúvida... ela irá ajudar muita gente!

 

Que todos tenham um 2007 repleto de alegrias e conquistas!

Um abraço e boa sorte a todos!!!

 

 

------------------------------------

ASP yes! PHP never!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

verdade, nao reparei no Loop!! :Pé q eu olhei rápidoultimamente to tentando aprender alguma linguagem mais avançada e to mexendo com VB.Net, mas assim q terminar meu programinha vou migrar pra C#como em ASP eu jah consegui fazer tudo q eu queria (por mais trabalho q desse) to voltando a ajudar a galera q tah começando, pois eu jah pertubei mto esse forum aki !!!!!! hihihihihi

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.