Ir para conteúdo

POWERED BY:

Arquivado

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

apfnet

[Resolvido] Erro na classe de encriptar e decriptar parâmetros na url

Recommended Posts

Pessoas,

 

A minha classe está dando pau numa variável. Creio que não está armazenado nenhum valor quando a inicio.

 

Onde está de vermelho aparece a mensagem:

 

O tamanho do argumento 'String' deve ser maior que zero.

 

 

 

 

Imports System.Web
Imports Microsoft.VisualBasic

' Classe para encryptar ou descriptar parâmetros da QueryString.

' Exemplos

' Para encriptar a QueryString a nível de página:
' Encryption_String	   = "?Var1=1&Var2=2&Var3=3"
' ENCRYPTED_CYPHERTEXT	= "info=" & cl_encripta_decripta_querytstring.EnCrypt(Encryption_String)

'Para decriptar a QueryString a nível de página:
'Var1 = cl_encripta_decripta_querytstring.Request_eQueryString("Var1")
'Var2 = cl_encripta_decripta_querytstring.Request_eQueryString("Var2")
'Var3 = cl_encripta_decripta_querytstring.Request_eQueryString("CourseParentLevelID")

Public Class cl_encripta_decripta_querytstring

	Private Shared Encryption_Key As String
	Private Shared Encryption_KeyLocation As String
	Private Shared DECRYPTED_CYPHERTEXT As String
	Private Shared g_CryptThis As String
	Private Shared Request As Web.HttpRequest = Web.HttpContext.Current.Request
	Private Shared Server As Web.HttpServerUtility = System.Web.HttpContext.Current.Server
	Private Shared Response As HttpResponse = System.Web.HttpContext.Current.Response

	' Setar valores:
	'   Encryption_Key
	'   g_CryptThis
	'   DECRYPTED_CYPHERTEXT

	Public Property PPEncryption_Key() As String
		Get
			Return Encryption_Key
		End Get
		Set(ByVal strValue As String)
			Encryption_Key = strValue
		End Set
	End Property

	Public Property PPg_CryptThis() As String
		Get
			Return g_CryptThis
		End Get
		Set(ByVal value As String)
			value = Request.QueryString("info")
			g_CryptThis = value
		End Set
	End Property

	Public Property PPDECRYPTED_CYPHERTEXT() As String
		Get
			If Len(g_CryptThis) > 1 Then
				DECRYPTED_CYPHERTEXT = DeCrypt(g_CryptThis)
			End If
			Return DECRYPTED_CYPHERTEXT
		End Get
		Set(ByVal strValue As String)
			DECRYPTED_CYPHERTEXT = strValue
		End Set
	End Property

	Shared Sub New()
		Encryption_Key = "RW1C]U`C8E(A_<H`I4WY76A_+QW._)?L[B\;D<$\S>^;RA`V%15F&K^-V^92]RQ[N>&.IT_R)[5);5AIV8C01Z]&I+/I0S1ZG=4\)1$HNQSKS)1[;<.UQ8G0[(`8M>%*\24KZ#5^#P&'U.;0*.[<C2&,(F=>3$7,,ML:Z;`9=LS:<W)(>?;%@\B;G:*^XT3AKB+,#L1795IHA7E&Q$3PAK(AT4R\:'`NXB7#,+/=/=1T\]XI>K.B@M^^*(`9P)M4-?[_0&$,9W2_K^08]+V<9647_E?5U.AS^,C'+OY&368.FLRQK1V@$V/,S@WRDGEOM9V8S<[L5I-=F8J:_QWN:BZ\[ISUTH%JOY@U';4BYD;RG3%P6?D-8IA0SR]>CB*'?@+B\_,*<YK0AO'9(+GXU@-DUO_OHF\E8\?@2<L$5;IU0`]UMFHWN7'<<1DK^)JGR$)P\#`R]X]GL8RGCC4+[@8;^*53@9:P*EO6Y$4XR(4FQ'P1#U2S7..`Y*YI'J8C"
		g_CryptThis = Request.QueryString("info")

		'Encryption_Key = Mid(ReadKeyFromFile(Encryption_KeyLocation), 1, Len(g_CryptThis))
		Encryption_Key = Mid(Encryption_Key, 1, Len(g_CryptThis))
	End Sub


	Public Property Encryption_KeyFull() As Int32
		Get
			Return Encryption_Key
		End Get
		Set(ByVal Value As Int32)
			Encryption_Key = Value
		End Set
	End Property


	Public Shared Function Request_eQueryString(ByVal GetQueryString)

		Dim i As Integer
		Dim Found_It As Integer
		Dim Chop_DECRYPTED_CYPHERTEXT As String
		Dim Found_It_Here As Integer
		Dim TrimExcess As Integer

		Found_It_Here = 0
		TrimExcess = 0
		Chop_DECRYPTED_CYPHERTEXT = ""

		For i = 0 To Len(GetQueryString)
			Found_It = InStr(1, DECRYPTED_CYPHERTEXT, "&" & GetQueryString & "=", 1)
			If CInt(Found_It) > 0 Then
				Found_It_Here = Found_It
				TrimExcess = 1
			End If

			If Found_It_Here < 1 Then
				Found_It = InStr(1, DECRYPTED_CYPHERTEXT, "?" & GetQueryString & "=", 1)
				If (CInt(Found_It) > 0) Then
					Found_It_Here = Found_It
					TrimExcess = 2
				End If
			End If

			If Found_It_Here > 0 Then
				Chop_DECRYPTED_CYPHERTEXT = Right(DECRYPTED_CYPHERTEXT, (Len(DECRYPTED_CYPHERTEXT)) - Found_It - Len(GetQueryString) - TrimExcess)
				Found_It = InStr(1, Chop_DECRYPTED_CYPHERTEXT, "&", 1)
				If CInt(Found_It) > 0 Then
					Chop_DECRYPTED_CYPHERTEXT = Left(Chop_DECRYPTED_CYPHERTEXT, Found_It - 1)
				End If
			End If

		Next

		Request_eQueryString = Chop_DECRYPTED_CYPHERTEXT

	End Function


	Public Shared Function EnCrypt(ByVal strCryptThis)

		strCryptThis = ChkString(strCryptThis)

		'Dim strChar As String
		Dim iKeyChar As Integer
		Dim iStringChar As Integer
		Dim i As Integer
		Dim iCryptChar As Integer
		Dim strEncrypted As String = Nothing


		For i = 1 To Len(strCryptThis)
			iKeyChar = Asc(Mid([color="#FF0000"]Encryption_Key[/color], i, 1))
			iStringChar = Asc(Mid(strCryptThis, i, 1))
			iCryptChar = iStringChar + iKeyChar

			If iCryptChar > 255 Then
				iCryptChar = iCryptChar - 256
			End If

			'iCryptChar = iKeyChar Xor iStringChar
			strEncrypted = strEncrypted & Chr(iCryptChar)
		Next
		EnCrypt = Server.UrlEncode(strEncrypted)
	End Function


	Private Shared Function DeCrypt(ByVal strEncrypted)

		'Dim strChar As String
		Dim iKeyChar As Integer
		Dim iStringChar As String
		Dim i As Integer
		Dim iDeCryptChar As Integer
		Dim strDecrypted As String = ""

		For i = 1 To Len(strEncrypted)
			iKeyChar = (Asc(Mid(Encryption_Key, i, 1)))
			iStringChar = Asc(Mid(strEncrypted, i, 1))
			iDeCryptChar = iStringChar - iKeyChar
			'iDeCryptChar = iKeyChar Xor iStringChar

			If iDeCryptChar < 0 Then
				iDeCryptChar = iDeCryptChar + 256
			End If

			If (iDeCryptChar = 34) Or (iDeCryptChar = 39) Then
				Response.Write("Ocorreu um erro na criptografia. Por favor verifique as configurações.")
				Response.End()
			Else
				strDecrypted = strDecrypted & Chr(iDeCryptChar)
			End If
		Next
		DeCrypt = strDecrypted
	End Function

	'Private Shared Function ReadKeyFromFile(ByVal strFileName)

	'	'keyFile
	'	ReadKeyFromFile = "RW1C]U`C8E(A_<H`I4WY76A_+QW._)?L[B\;D<$\S>^;RA`V%15F&K^-V^92]RQ[N>&.IT_R)[5);5AIV8C01Z]&I+/I0S1ZG=4\)1$HNQSKS)1[;<.UQ8G0[(`8M>%*\24KZ#5^#P&'U.;0*.[<C2&,(F=>3$7,,ML:Z;`9=LS:<W)(>?;%@\B;G:*^XT3AKB+,#L1795IHA7E&Q$3PAK(AT4R\:'`NXB7#,+/=/=1T\]XI>K.B@M^^*(`9P)M4-?[_0&$,9W2_K^08]+V<9647_E?5U.AS^,C'+OY&368.FLRQK1V@$V/,S@WRDGEOM9V8S<[L5I-=F8J:_QWN:BZ\[ISUTH%JOY@U';4BYD;RG3%P6?D-8IA0SR]>CB*'?@+B\_,*<YK0AO'9(+GXU@-DUO_OHF\E8\?@2<L$5;IU0`]UMFHWN7'<<1DK^)JGR$)P\#`R]X]GL8RGCC4+[@8;^*53@9:P*EO6Y$4XR(4FQ'P1#U2S7..`Y*YI'J8C"

	'End Function


	Shared Function ChkString(ByVal strQstring)

		If strQstring = "" Then
			strQstring = " "
		End If

		ChkString = Replace(strQstring, """", "")
		ChkString = Replace(ChkString, "'", "")

	End Function

End Class

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET » Web Applications

 

Esta variável Encryption_Key esta alimentada com algum valor na parte do código em que esta dando o erro?

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET » Web Applications

 

Esta variável Encryption_Key esta alimentada com algum valor na parte do código em que esta dando o erro?

 

Abraços...

 

Valeu quintelab! Era só declarar a variável e atribuir valor à ela.

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.