Как en / расшифровать связь C # с PHP / Soap клиент / сервер, используя AES256 - PullRequest
0 голосов
/ 28 октября 2018

Я пытаюсь зашифровать связь между клиентом C # и сервером PHP / nuSOAP с помощью этой библиотеки: https://github.com/mervick/aes-everywhere/

Все работает, как должно, когда я шифрую, а затем дешифрую внутри клиента / сервера.

Все работает как надо, когда нет шифрования между клиентом / сервером.

Однако, когда я пытаюсь зашифровать, отправить и затем расшифровать данные, я получаю System.InvalidOperationException: Ответ не очень хорошоXML-форматКак получилось?

C # код:

try
{

    AES spymaster = new AES();
    string key = "admin";
    string encrypted = spymaster.Encrypt(XMLString, key);
    MyOutString = MyServer.test(encrypted);
}
catch (Exception e)
{
    MessageBox.Show(e.ToString());
}

PHP код:

     $server->register( 'test', array('$mystring' => 'xsd:instring'),     array('return'=>'xsd:string'), "http://mujserver.cz", false, 'rpc', 'encoded', 'Ignore this description too late oups');


     function test ($mystring) 
     {

             $key = "admin";
             $result = AES256::decrypt($myXMLstring, $key);

             return $result;
     }

РЕДАКТИРОВАТЬ: Удалено описание, чтобы не путать людей.

1 Ответ

0 голосов
/ 28 октября 2018

Я решил это, сначала преобразовав данные в байт [], а затем отправив их!

Соответствующие функции в C #

byte[] System.Text.Encoding.UTF8.GetBytes(string);
string System.Text.Encoding.UTF8.GetString(byte[]);

Соответствующие функции в PHP:

string hex2bin ( string $data )
string bin2hex ( string $str )

pack (), unpack () также работали бы!

...