Алгоритм шифрования для веб-приложений - PullRequest
2 голосов
/ 19 августа 2009

Я некоторое время использовал алгоритм симметричного ключа (Rijndael) (http://www.obviex.com/samples/Encryption.aspx)) для шифрования идентификатора. Затем я URL-адрес кодирую зашифрованную версию идентификатора и передаю его в строке запроса. Когда я получаю Идентификатор из строки запроса, сначала я его декодирую по URL, и расшифровываю.

Недавно возникла проблема. Если зашифрованный идентификатор имеет как «пробелы», так и «+» (например, «abc ef + g»), при кодировании URL он заменяет все «пробелы» на «+». Это проблема, когда я URL-декодирую идентификатор, поскольку я не не знаю, какой "+" был "+", а какой "+" был "пробел".

Если есть возможность выбрать выходной набор символов, состоящий только из алфавита (т. Е. Зашифрованный идентификатор использует только A-Z)? Или, если есть какой-то другой 2-х сторонний алгоритм шифрования, у которого есть опция выбора выходного набора символов?

Или, я думаю, мой последний вариант - вручную заменить "+" в зашифрованном идентификаторе на что-то вроде "_SPACE _"

Спасибо

Ответы [ 4 ]

0 голосов
/ 19 августа 2009

Можете ли вы вручную закодировать URL, чтобы пробелы были изменены на %20 вместо +?

0 голосов
/ 19 августа 2009

вы должны взглянуть на то, как я решил управлять своим способом скрытия идентификатора (в моем случае guid, но может быть любой зашифрованной строкой)

ссылка

0 голосов
/ 19 августа 2009

Вам нужно, чтобы URL кодировал ваш зашифрованный идентификатор при передаче в качестве параметров запроса.

Я предпочитаю URL-безопасную версию Base64 для всего, что используется в параметрах запроса или файлах cookie.

0 голосов
/ 19 августа 2009

Хорошо, чтобы ответить на ваш вопрос на базовом уровне: Да, закодируйте зашифрованный результат в base64.

Но я должен признать, что я довольно обеспокоен вашим подходом в целом.

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