Добрый день! Есть MVC сайт. Для просмотра некоторой информации, передаются в строке uRL 2 параметра: а) лицевой счет, б) номер телефона, таким образом:
~/?id=12343&tel=79998884565
Мне необходимо зашифровать эти параметры, чтобы никто другой не понял, что передается на сервер. Пока остановился на таком варианте: Сгенерировал ключ для шифрования и расшифровки. Шифрую таким образом:
public static string Encrypt(string stringToEncrypt, string sEncryptionKey)
{
byte[] key = { };
byte[] IV = { 10, 20, 30, 40, 50, 60, 70, 80 };
byte[] inputByteArray;
try
{
key = Encoding.UTF8.GetBytes(sEncryptionKey.Substring(0, 8));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
inputByteArray = Encoding.UTF8.GetBytes(stringToEncrypt);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
catch (System.Exception ex)
{
return ex.Message;
}
}
или же таким, без задания вектора:
public string Encrypt(string stringToEncrypt, string sEncryptionKey)
{
TripleDESCryptoServiceProvider DES = new System.Security.Cryptography.TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider hashMD5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
DES.Key = hashMD5.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(sEncryptionKey));
DES.Mode = System.Security.Cryptography.CipherMode.ECB;
ICryptoTransform DESEncrypt = DES.CreateEncryptor();
Buffer = System.Text.ASCIIEncoding.ASCII.GetBytes(stringToEncrypt);
string TripleDES = Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
return TripleDES;
}
в принципе меня всё устраивало бы, но в разных вариантах шифрования (используя разные входящие строки номеров), получается нечто похожее "eBCBbTjZyYg+jztO/NIqvg==", при обработке контроллера в данной последовательности знак "+" заменяется на пробел.
Каким образом можно сделать так,чтобы при попадании в контроллер параметр не менялся, чтобы "+" оставался и возможно другие нежелательные последовательности символов?
Или же,как то по другому шифровать, чтобы не было в шифрованном виде знаков "+/==;?&", которые могут не понравится asp.
Используйте HttpUtility.UrlEncode для кодирования, а HttpUtility.UrlDecode - для декодирования обратно.
var asdf1 = "eBCBbTjZyYg+jztO/NIqvg==";
var asdf2 = System.Web.HttpUtility.UrlEncode(asdf1); // eBCBbTjZyYg%2bjztO%2fNIqvg%3d%3d
var asdf3 = System.Web.HttpUtility.UrlDecode(asdf2); // eBCBbTjZyYg+jztO/NIqvg==
Всем приветПодскажите пожалуйста как получить скриншот свернутого opengl окна при помощи языка c#
Нужно сделать так, чтобы при подборе чекпоинта сохранялось текущее состояние сцены, чтобы потом его можно было загрузить при смерти игрокаДопустим,...
Кто - то знает как добавить текст на гэймобжект? Допустим есть сфераКак сделать чтобы текст облегал ее? Что-то типа этого, только с текстом...