Вопрос

Я ищу способ зашифровать строку в C # и расшифровать ее с помощью JavaScript.JavaScript в данном случае является языком сценариев для внутренней системы, поэтому мне не следует беспокоиться о том, что люди получат доступ к закрытому ключу / паролю, который потребуется для расшифровки.

При поиске решения в Интернете кажется, что шифрование AES должно сработать.Я изучил Управляемое slowAES и Rijndael решение, но мне не повезло заставить его работать.

Я использовал код C #, который предоставил Cheeso, и получил идентичный зашифрованный текст.Но когда я попытался использовать slowAES для шифрования одной и той же части данных, я получил совершенно другой шифр.

var testString = new Array("w", "a", "t", "s", "o", "n", "?");
var test = slowAES.encrypt(testString, slowAES.modeOfOperation.CBC, "12345678901234567890123456789012", slowAES.aes.keySize.SIZE_256, new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
alert(test.cipher);

Может кто-нибудь указать мне правильное направление?Меня не волнует метод, главное, чтобы я мог добиваться результатов.Моя цель - взять URL, например:

www.test.com/clientid=123

используйте .NET (C #), чтобы зашифровать его, чтобы он выглядел как

www.test.com/clientid=asdf ;lkjsxd;flkjq934857u9duhfgkjhgalsdkjfh

а затем используйте JavaScript, чтобы преобразовать его обратно в

www.test.com/clientid=123

Спасибо, Итрушн

Это было полезно?

Решение 3

Мне удалось решить мою проблему, используя шифрование RC4.Вы можете получить более подробную информацию о реализации на моем Блог.

Другие советы

Операции шифрования / дешифрования выполняются с двоичными данными.Следовательно, вы должны сохранить эти двоичные данные между C # и javascript.Кодирование выходных данных в виде base64 или шестнадцатеричной строки, вероятно, лучший способ сделать это.

Вариант 1

Если вашей единственной целью является защита конфиденциальных данных между сервером и клиентом, что является решаемой проблемой, используйте SSL.

Вариант 2

  • учитывая URL-адрес www.test.com/clientid=123

  • используйте .NET (C #), чтобы зашифровать его и указать на другое местоположение:www.mywebserver.com/forward.aspx?url=asdf ;lkjsxd;flkjq934857u9duhfgkjhgalsdkjfh

  • а затем на странице forward.aspx расшифруйте и перенаправьте на www.test.com/clientid=123

  • затем клиент выполняет HTTP-перенаправление и выполняет prest-o-done.Никаких общих ключей, прост в реализации, это просто работает.

Примечание:

Что касается вашего оригинального решения, то оно не может быть выполнено безопасно без COM или каких-либо других средств взаимодействия.Причина, по которой я говорю это, заключается в том, что JScript потребуется доступ к паре открытый / закрытый ключи, что, насколько мне известно, невозможно.Без открытого / закрытого ключа серверу потребовалось бы совместно использовать симметричный ключ с клиентом.Не имея средств для безопасной передачи этого ключа, вы не защитили данные, а только запутали их.

Я думаю, что самым простым подходом было бы использовать SSL, за которым следует URL-адрес пересылки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top