Как зашифровать-расшифровать url в ASP.NET с#
Мне нужно зашифровать и расшифровать URL-адрес моего веб-приложения. в настоящее время я использую таблицу маршрутов global.asax для перезаписи URL-адреса, например
Продукт --> http://localhost:45212/Product?p=2
Продукт --> http://localhost:45212/Product?p=2&w=1
Тележка --> http://localhost:45212/Cart
Мне нужен полный URL-адрес после того, как доменное имя зашифровано и расшифровано, как показано ниже
Продукт --&ГТ; http://localhost:45212/xjh&$&усилителя;г&усилитель;&^%
Продукт --&ГТ; http://localhost:45212/xjh&$на&г&&усилителя;^YRW$#ДФФ%
Тележка --> http://localhost:45212/^&jfgj^8678
если возможен какой - либо другой способ, пожалуйста, дайте мне знать.
Что я уже пробовал:
Зашифровать
public static string Encrypt(string clearText) { try { string EncryptionKey = "@Test"; byte[] clearBytes = Encoding.Unicode.GetBytes(clearText); using (Aes encryptor = Aes.Create()) { Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 }); encryptor.Key = pdb.GetBytes(32); encryptor.IV = pdb.GetBytes(16); using (MemoryStream ms = new MemoryStream()) { using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write)) { cs.Write(clearBytes, 0, clearBytes.Length); cs.Close(); } clearText = Convert.ToBase64String(ms.ToArray()); } } return clearText; } catch (Exception ex) { Log.writeLog(ex); return null; } } Decrypt public static string Decrypt(string cipherText) { try { string EncryptionKey = "@Test"; cipherText = cipherText.Replace(" ", "+"); byte[] cipherBytes = Convert.FromBase64String(cipherText); using (Aes encryptor = Aes.Create()) { Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 }); encryptor.Key = pdb.GetBytes(32); encryptor.IV = pdb.GetBytes(16); using (MemoryStream ms = new MemoryStream()) { using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write)) { cs.Write(cipherBytes, 0, cipherBytes.Length); cs.Close(); } cipherText = Encoding.Unicode.GetString(ms.ToArray()); } } return cipherText; } catch (Exception ex) { Log.writeLog(ex); return null; } }
событие щелчка кнопки
Ответ.Redirect("/Product?p="+Encrypt(code));
еще одна страница в событии загрузки страницы
string code = Decrypt(запрос.Файл querystring["п"]);
это будет получать значение, но мне нужно зашифровать расшифровать после доменного имени.