Imports ...System.Security.Cryptography Imports System.IO Imports System.Text Public Class crypt Private key() key() As Byte Private iv() iv() As Byte = {&H12, &H34, &H56, &H78, &H90, &HAB, &HCD, &HEF} Public Function decrypt() Function decrypt(ByVal stringToDecrypt As String, ByVal sEncryptionKey As String) As String Dim inputByteArray(stringToDecrypt.Length) As Byte Try key = System.Text.Encoding.UTF8.GetBytes(Left(sEncryptionKey, 8)) Dim des As New DESCryptoServiceProvider inputByteArray = Convert.FromBase64String(stringToDecrypt) Dim ms As New memorystream Dim cs As New CryptoStream(ms, des.CreateDecryptor(key, iv), CryptoStreamMode.Write) cs.Write(inputByteArray, 0, inputByteArray.Length) cs.FlushFinalBlock() Dim encoding As System.Text.Encoding = System.Text.Encoding.UTF8 Return encoding.GetString(ms.toarray()) Catch ex As Exception Return ex.Message End Try End Function Public Function encrypt() Function encrypt(ByVal stringtoencrypt As String, ByVal sencryptionkey As String) As String Try key = System.Text.Encoding.UTF8.GetBytes(Left(sencryptionkey, 8)) Dim des As New DESCryptoServiceProvider Dim inputbytearray() As Byte = Encoding.utf8.getbytes(stringtoencrypt) Dim ms As New MemoryStream Dim cs As New CryptoStream(ms, des.CreateEncryptor(key, iv), CryptoStreamMode.Write) cs.Write(inputbytearray, 0, inputbytearray.Length) cs.FlushFinalBlock() Return Convert.ToBase64String(ms.ToArray()) Catch ex As Exception Return ex.Message End Try End Function End Class
common.vb
"--加密--"#Region "--加密--" Public Shared Function EncryptQueryString() Shared Function EncryptQueryString(ByVal strquerystring) Try Dim oes = New crypt strquerystring &= "&Var=" & Now().Second.ToString Return oes.encrypt(strquerystring, "!#$a5423") '自定您的加密字串 Catch ex As Exception End Try End Function #End Region "--解密--"#Region "--解密--" Public Shared Function DecryptQueryString() Shared Function DecryptQueryString(ByVal strquerystring) As Collection Try DecryptQueryString = New Collection Dim oes = New crypt Dim str_value As String = oes.decrypt(strquerystring, "!#$a5423") For Each strRequestVal As String In str_value.Split("&") If InStr(strRequestVal, "=") > 0 Then DecryptQueryString.Add(strRequestVal.Split("=")(1), strRequestVal.Split("=")(0)) End If Next Return DecryptQueryString Catch ex As Exception End Try End Function #End Region
testpage.vb
"--PageLoad--"#Region "--PageLoad--" Protected Sub Page_Load() Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Try Dim col As New Collection '加密格式為 參數1=value1&參數2=value2&參數3=value3 Common.EncryptQueryString("test1=1&test2=2&test3=3")) '解密時須用col承接 col = Common.DecryptQueryString(Request.Params("PageValue").Replace(" ", "+")) '解密結果 dim value1,value2,value3 as String value1=col("test1") value2=col("test2") value3=col("test3") Catch ex As Exception End Try End Sub