Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
Carregando comentários...