RC4 проблема шифрования / дешифрования в asp.net - PullRequest
0 голосов
/ 04 апреля 2011

Я реализовал шифрование / дешифрование RC4 в своем приложении, как указано ниже.в конце строки наступает исключение.

string sFNToBase64String = Convert.ToBase64String(Encoding.ASCII.GetBytes("Malhotra"));
string sEnFirstName = CommonFunction.RC4EncryptDecrypt(sKey, sFNToBase64String);
//calling webservice
localhost.LoginRequest objRQ = new localhost.LoginRequest();
string sIsValidate = objRQ.ValidateRequest(sEnFirstName); //Exception coming on this line

Исключение наступает

 //Exception coming

    The request failed with HTTP status 400: Bad Request. 
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

    Exception Details: System.Net.WebException: The request failed with HTTP status 400: Bad Request.

Как мы можем его разрешить.

----------- ОБНОВЛЕНИЕ -------------------

На самом деле проблема только в зашифрованном тексте "Malhotra" [зашифрованный текст:CX ± £ þÕlêÁ $].я думаю, что есть некоторые специальные символы, которые вызов веб-службы не позволяет.

Как мы можем справиться с этим?

----------------------- Зашифрованный / дешифрованный процесс ---------------------

//Encrypte
string sEnLastName = CommonFunction.RC4EncryptDecrypt(sKey, "Malhotra");
//Encode
string sLNToBase64String = Convert.ToBase64String(Encoding.ASCII.GetBytes(sEnLastName));
//Decode
string sDecodeLastName = Encoding.ASCII.GetString(Convert.FromBase64String(sLNToBase64String));
//Decrypte
string sDeLastName = CommonFunction.RC4EncryptDecrypt(sKey, sDecodeLastName);

1 Ответ

1 голос
/ 04 апреля 2011

Первая точка - base64 - это стандарт кодирования, НЕ шифрование.

Похоже, что вы передаете зашифрованную строку без кодировки base 64 в веб-службу, это ваше намерение?

Я бы посоветовал попытаться изменить это, если это возможно, чтобы потребовать, чтобы закодированная в base 64 строка передавалась в веб-сервис, и чтобы веб-сервис декодировал обратно из base 64, прежде чем он заработает.

База 64 может содержать только A-Z, a-z, 0-9, +, - и = для заполнения. Эти символы не вызовут проблем с вашим веб-сервисом.

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