Ir para conteúdo

POWERED BY:

Arquivado

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

xanburzum

[Resolvido] RC4 criptografia e descriptografia

Recommended Posts

Codifica e decodifica os dados utilizando o algoritmo RC4 e uma chave / senha.

 

RC4.asp

<%
Function RC4(ByRef pStrMessage, ByRef pStrKey)

	Dim lBytAsciiAry(255)
	Dim lBytKeyAry(255)
	Dim lLngIndex
	Dim lBytJump
	Dim lBytTemp
	Dim lBytY
	Dim lLngT
	Dim lLngX
	Dim lLngKeyLength
	

	If Len(pStrKey) = 0 Then Exit Function
	If Len(pStrMessage) = 0 Then Exit Function


	lLngKeyLength = Len(pStrKey)
	For lLngIndex = 0 To 255
		lBytKeyAry(lLngIndex) = Asc(Mid(pStrKey, ((lLngIndex) Mod (lLngKeyLength)) + 1, 1))
	Next

	For lLngIndex = 0 To 255
		lBytAsciiAry(lLngIndex) = lLngIndex
	Next


	lBytJump = 0
	For lLngIndex = 0 To 255
	

		lBytJump = (lBytJump + lBytAsciiAry(lLngIndex) + lBytKeyAry(lLngIndex)) Mod 256
		

		lBytTemp				= lBytAsciiAry(lLngIndex)
		lBytAsciiAry(lLngIndex)	= lBytAsciiAry(lBytJump)
		lBytAsciiAry(lBytJump)	= lBytTemp
		
	Next

	
	lLngIndex = 0
	lBytJump = 0
	For lLngX = 1 To Len(pStrMessage)
		lLngIndex = (lLngIndex + 1) Mod 256 ' wrap index
		lBytJump = (lBytJump + lBytAsciiAry(lLngIndex)) Mod 256 ' wrap J+S()
		

		lLngT = (lBytAsciiAry(lLngIndex) + lBytAsciiAry(lBytJump)) Mod 256
		

		lBytTemp				= lBytAsciiAry(lLngIndex)
		lBytAsciiAry(lLngIndex)	= lBytAsciiAry(lBytJump)
		lBytAsciiAry(lBytJump)	= lBytTemp

		lBytY = lBytAsciiAry(lLngT)
	

		RC4 = RC4 & Chr(Asc(Mid(pStrMessage, lLngX, 1)) Xor lBytY)
	Next
	
End Function
%>

teste.asp

<%Option Explicit%>
<!--#INCLUDE FILE="RC4.asp"-->
<%
Dim lStrKey
Dim lStrMessage
Dim lStrResult
If Not Request.Form = "" Then
	lStrKey = Request.Form("Key")
	lStrMessage = Request.Form("Message")
	lStrResult = RC4(lStrMessage, lStrKey)
End If
%>
<HTML>
	<HEAD>
		<TITLE>RC4 Encryption</TITLE>
	</HEAD>
	<BODY>
		<H1>RC4 Encryption</H1>
		<P>
			Este script criptografa e descriptografa mensagens com o algoritmo RC4. Digite a senha (chave) e uma mensagem para criptografar ou descriptografar os campos abaixo.
		</P>
		<FORM method="Post">
			Key: <INPUT name="Key" value="<%=Server.HTMLEncode(lStrKey)%>"><BR>
			<BR>
			Message:<BR>
			<TEXTAREA name="Message" rows="6" cols="50"><%=Server.HTMLEncode(lStrResult)%></TEXTAREA>
			<BR>
			<INPUT type="Submit" value="RC4">
		</FORM>
	</BODY>
</HTML>

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.