我正在尝试使用以下库来加密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;
}
编辑:删除了描述,以免使人们感到困惑。
答案 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()也会起作用!