Asp.net
如何在 asp.net 中加密查詢字元串?
我需要加密和解密 ASP.NET 中的查詢字元串。
查詢字元串可能如下所示:
如何加密整個查詢字元串,使其看起來像下面這樣?
然後,當然,我如何解密它?對於這樣的事情,最好的加密是什麼?三重DES?
這是在 VB 中執行此操作的一種方法來自: http: //www.devcity.net/Articles/47/1/encrypt_querystring.aspx
**加密程式碼的包裝器:**將您的查詢字元串參數傳遞給它,並更改密鑰!!!
Private _key as string = "!#$a54?3" Public Function encryptQueryString(ByVal strQueryString As String) As String Dim oES As New ExtractAndSerialize.Encryption64() Return oES.Encrypt(strQueryString, _key) End Function Public Function decryptQueryString(ByVal strQueryString As String) As String Dim oES As New ExtractAndSerialize.Encryption64() Return oES.Decrypt(strQueryString, _key) End Function加密程式碼:
Imports System Imports System.IO Imports System.Xml Imports System.Text Imports System.Security.Cryptography Public Class Encryption64 Private key() As Byte = {} Private IV() As Byte = {&H12, &H34, &H56, &H78, &H90, &HAB, &HCD, &HEF} Public 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 e As Exception Return e.Message End Try End Function Public 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 e As Exception Return e.Message End Try End Function End Class