如何使用AES256将C#加密/解密为PHP / Soap客户端/服务器通信

时间:2018-10-28 14:02:42

标签: c# php encryption aes nusoap

我正在尝试使用以下库来加密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 :(得分:0)

我先将数据转换为byte [],然后再发送,就解决了它!

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()也会起作用!