Будет ли Html.Encode зашифрован с использованием AES и передать строку запроса? - PullRequest
1 голос
/ 09 июня 2009

Я зашифрован с использованием AES и передаю строку запроса, Html.Encode преобразует все символы правильно, так что вызов Decode приведет к той же строке?

Ответы [ 4 ]

3 голосов
/ 04 октября 2012

Я пытался сделать то же самое, и нашел ответ здесь:

Шифрование значения с помощью функции MySQL AES_ECRYPT, затем передача его в строку URL с использованием PHP

Косая черта может вызвать проблемы, даже если URL закодирован. Решение, которое работает для меня, состоит в том, чтобы преобразовать в шестнадцатеричный код, передать его через URL, а затем вернуть в двоичный код перед расшифровкой.

1 голос
/ 09 июня 2009

Кодировка HTML отличается от кодировки URL. Кодировка HTML используется, когда вы хотите вывести URL в документе HTML. Это ускользает от HTML. Чтобы вывести URL-адрес на HTML-страницу, сначала необходимо закодировать URL-адрес для создания действительного URL-адреса, а затем HTML-кодировать его, если вы хотите записать его на HTML-странице.

Используйте HttpUtility.UrlEncode. Кроме того, вы можете сначала преобразовать byte[] в base64, используя Convert.ToBase64String, а затем кодировать его, используя HttpUtility.UrlEncode. Вероятно, будет создан более короткий URL.

0 голосов
/ 09 июня 2009

AES шифрует байтовым способом. Для передачи байтов в строке запроса вам необходимо преобразовать ее в текст. Один из способов сделать это - использовать Convert.ToBase64String ().

После преобразования в текст вам необходимо убедиться, что все не алфавитно-цифровые символы правильно закодированы с помощью UrlEncode ().

На принимающей стороне, если она уже UrlDecoded (), вы сможете преобразовать текст в зашифрованный поток байтов с помощью Convert.FromBase64String (), а затем расшифровать полученный байтовый массив.

0 голосов
/ 09 июня 2009

Вызов HttpUtility.UrlEncode перед помещением в строку запроса закодирует его правильно.

На принимающей стороне свойство QueryString уже декодирует значения, поэтому не следует вызывать любые методы декодирования (кроме Convert.FromBase64String)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...